Khaffner Skrevet 16. april 2010 Del Skrevet 16. april 2010 Tror dette er veldig enkelt, men forslagene jeg har fått har vært veldig varierende, og ingen har fungert tilfredstillende. Jeg har html-koden til en nettside i en string. Et eller annet sted i den stringen befinner en bildelink seg som begynner med "http" og slutter med ".jpg". (Så langt har jeg kommet) Jeg ønsker å kunne dra ut linken til bildet fra stringen. Altså dra ut fra og med "http", til og med ".jpg", og lagre hele linken som en ny string. Jeg trenger ikke å dra ut alle linkene hvis det er flere, kun den første koden finner. Forslag? Lenke til kommentar
GeirGrusom Skrevet 16. april 2010 Del Skrevet 16. april 2010 (endret) Hvis du ignorerer at det er HTML, kan du bruke System.Text.RegularExpressions. hvis ikke, kan du kanskje bruke XmlDocument. Ellers tror jeg det også finnes en HTML parser, men jeg er usikker. Kanskje WebBrowser kontrollen også kan brukes, men det er kanskje litt tungvint bare for å parse et dokument (ettersom den også laster ned bilder og alt mulig ræl) Regex som kanskje kan virke: http://(?<Link>[a-zA-Z0-9-%/_]+\.jpg) men har ikke testet... Endret 16. april 2010 av GeirGrusom Lenke til kommentar
miXer Skrevet 17. april 2010 Del Skrevet 17. april 2010 (endret) Denne koden her skal kunne finne alle jpg bilder i html koden din: string htmlkode = "skefbskbsbsbbjsbgsbbslkbglsbb\nhttp://et.eller.annet.bilde.jpg\naosiugsdifg\nhttp://et-eller-annet-annet-bilde.jpg"; Regex r = new Regex("http://[a-zA-Z0-9.\\/_%-]*.jpg"); foreach (Match m in r.Matches(htmlkode)) Console.WriteLine(m.Value); Endret 17. april 2010 av miXer Lenke til kommentar
Khaffner Skrevet 17. april 2010 Forfatter Del Skrevet 17. april 2010 Var så enkelt som jeg trodde, fant det ut selv. Veldig ensidig kode som ikke fungerer til alle kildekoder, men den gjør hva jeg trenger ihvertfall: Webclient client = new.Webclient(); string kildekode = client.DownloadString("link"); int startpos = kildekode.IndexOf("http://"); int jpgpos = kildekode.IndexOf(".jpg"); string imglink = kildekode.Substring(startpos, jpgpos - startpos + 4); Lenke til kommentar
GeirGrusom Skrevet 17. april 2010 Del Skrevet 17. april 2010 (endret) Du må escape . ettersom det er et spesielt tegn. Du trenger ikke escape den siste minusen, ettersom den ikke gir mening uten et tegn etter. Det er heller ikke nødvendig å escape / ettersom det ikke er et reservert ord. Det kan også hjelpe å gjøre om til verbatim string var reg = new Regex(@"http://(?<Domain>[a-z_\.-]+)/(?<Path>([a-z0-9%_?-]+/)*)(?<Filename>[a-z0-9%?_-]*\.jpg)", RegexOptions.IgnoreCase); Endret 17. april 2010 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå