Avatar billede peanut2000 Nybegynder
10. december 2004 - 13:20 Der er 19 kommentarer og
1 løsning

Regular Expressions url

Hej jeg har en url, eks: www.ekseperten.dk/opretspm
Normalt kender jeg ikke urlen, men jeg vil gerne have noget regular expression som kun tager starten altså [http://www.eksperten.dk] og fjerner resten og urlén skifter hver gang, så jeg ved ikke hvor lang den er, nogen der kan hjælpe???
Avatar billede aaberg Nybegynder
10. december 2004 - 13:25 #1
Den her regular expression tager http://eksperten.dk/ :

http://www.\S+.\S+/
Avatar billede aaberg Nybegynder
10. december 2004 - 13:26 #2
Den er ligeglad med hvor lang hjemmesidenavnet er.
Avatar billede aaberg Nybegynder
10. december 2004 - 13:27 #3
Følgende regular expression tager www.experten.dk

www.\S+.\S+(?=/)
Avatar billede aaberg Nybegynder
10. december 2004 - 13:28 #4
Denne tager præcist som du skriver: http://www.eksperten.dk

http://www.\S+.\S+(?=/)
Avatar billede aaberg Nybegynder
10. december 2004 - 13:32 #5
Denne her hjemmeside er god, hvis man vil forstå regular expressions.

http://www.regularexpression.info/
Avatar billede peanut2000 Nybegynder
10. december 2004 - 13:45 #6
jeg vil lige høre om jeg kan bruge disse udtryk i en replace funktion. jeg skal have alt hvad der kommer efter http://www.eksperten.dk væk, hvordan kommer det til at se ud har følgende: url.Replace(http://www.\S+.\S+(?=/), "")
Avatar billede aaberg Nybegynder
10. december 2004 - 14:02 #7
Hvis du skriver:

nyUrl = Regex.Match(gammelUrl, "http://www.\S+.\S+(?=/)").toString();

så kommer nyUrl til at indeholde "http://www.eksperten.dk", hvis gammelUrl f.eks. er "http://www.eksperten.dk/opretspm.htm"
Avatar billede aaberg Nybegynder
10. december 2004 - 14:04 #8
Regex.Match metoden er en static metode, der kan findes i namespacet:
System.Text.RegularExpressions;
Avatar billede aaberg Nybegynder
10. december 2004 - 14:09 #9
Forresten. Du skal sætte et "@" forand din regular expression, ellers går der ged i Visual Studio. Så det skal altså se sådan ud:

nyUrl = Regex.Match(gammelUrl, @"http://www.\S+.\S+(?=/)").toString();
Avatar billede peanut2000 Nybegynder
10. december 2004 - 14:09 #10
kan ikke få lov at bruge match
Avatar billede aaberg Nybegynder
10. december 2004 - 14:11 #11
Hvis du har copy/pastet min kode, virker det ikke, fordi jeg har kommet til at skrive "ToString()" med lille "t", det skal være med stort "T".
Avatar billede aaberg Nybegynder
10. december 2004 - 14:11 #12
Beklager.
Avatar billede aaberg Nybegynder
10. december 2004 - 14:13 #13
Jeg har lige testet med følgende kode, og det virker:

string url = @"http://www.hejmeddig.dk/hejsan.html";
string nyUrl;
           
nyUrl = Regex.Match(url, @"http://www.\S+.\S+(?=/)").ToString();

MessageBox.Show(nyUrl);
Avatar billede peanut2000 Nybegynder
10. december 2004 - 14:13 #14
skal Regex variablen erklæres som tal eller tekst, det virker nemlig ikke lige meget hvad jeg sætter den til
Avatar billede aaberg Nybegynder
10. december 2004 - 14:19 #15
Regex skal ikke erklæres da den er static. Regex.Match metoden returnere et "Match" object. Hvis man kører ToString() metoden på et Match object, får man en streng der indehoder resultatet af din regular expression. Så hvis du skriver :

nyUrl = Regex.Match(url, @"http://www.\S+.\S+(?=/)").ToString();

får du den nye URL. nyUrl skal selvfølgelig erklæres som en string først.

Prøv at skriv koden som jeg har skrevet den i mit sidste svar, det skulle gerne virke. Hvis det ikke virker, vil jeg gerne vide hvilken fejlmeddelelse du får.
Avatar billede peanut2000 Nybegynder
10. december 2004 - 14:27 #16
den skriver bare at regex ikke er erklæret, kan der være forskel, jeg bruger vb og ikke c# og hvad med namespace???
Avatar billede aaberg Nybegynder
10. december 2004 - 14:39 #17
Ok, nu forstår jeg bedre at det ikke virker. Prøv at skriv følgende:

Dim url As String
Dim nyUrl As String

url = "http://www.hejmeddig.dk/hejsam.dk"

nyUrl = System.Text.RegularExpressions.Regex.Match(url,
"http://www.\S+.\S+(?=/)").ToString()

MessageBox.Show(nyUrl)

Oversat til VB.NET
Avatar billede aaberg Nybegynder
10. december 2004 - 14:41 #18
Jeg kan ikke huske hvordan man tilføjer namespaces til VB.NET. Grunden til at det ikke virkede var, at den ikke kiggede efter Regex klassen i System.Text.RegularExpressions namespacet.

Hvis det stadig ikke virker, så sig til.
Avatar billede peanut2000 Nybegynder
10. december 2004 - 14:49 #19
tak det ser ud til at virke, smid et svar
Avatar billede aaberg Nybegynder
10. december 2004 - 14:50 #20
Thanx. God arbejdslyst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester