hockey500 Skrevet 15. januar 2008 Rapporter Del Skrevet 15. januar 2008 (endret) Hei, Som en del av et større prosjekt skal jeg hente ut en del info fra imdb, nemlig alle skuespillerne til en gitt film. Jeg bruker WebClient til å laste ned kildekoden til http://imdb.com/title/tt*******/fullcredits og skal parse denne med regex. HMTL: <td class="nm"><a href="/name/nm00234567/">Tom Hanks</a></td> sånn ser det ut på imdb. tenkte at dette i regex ville bli noe slikt: Regex rx = new Regex(@"<td\sclass=.nm.><a\shref\=.(?<url>(/name/nm\d+/)).>(?<name>(.*))</a></td>", RegexOptions.Singleline | RegexOptions.IgnoreCase); men det funker altså ikke. uttrykket finner første skuespiller i filmen, men leser tydeligvis ikke inn den siste delen med </a></td>, for den leser helt til slutten av stringen. dermed finner den selvsagt bare ett treff også. Hva gjør jeg feil her? Regex er ikke helt min sterke side, så kan hende jeg gjør noe veldig grunnleggende feil her. EDIT: bb-code Endret 15. januar 2008 av hockey500 Lenke til kommentar
Manfred Skrevet 15. januar 2008 Rapporter Del Skrevet 15. januar 2008 Du må nok bruke "<\/a>" i regexpen din for å finne "</a>" Lenke til kommentar
hockey500 Skrevet 15. januar 2008 Forfatter Rapporter Del Skrevet 15. januar 2008 (endret) Blir ingen forskjell av det. EDIT: nyeste oppdagelsen jeg gjorde var at det er (?<name>.*) som gjør det, hvis jeg byttter ut det med (?<name>\S+\s+\S+) funker det fint. bortsett fra at den hopper over alle som har 2 mellomrom i navnet sitt da. Endret 15. januar 2008 av hockey500 Lenke til kommentar
The Jackal Skrevet 18. januar 2008 Rapporter Del Skrevet 18. januar 2008 Tror problemet er at (.*) matcher helt til den ikke stemmer mer, altså resten av stringen. Prøv med denne koden istedetfor Regex rx = new Regex(@"<td\sclass=.nm.><a\shref\=.(?<url>(/name/nm\d+/)).>(?<name>([^<]*))</a></td>", RegexOptions.Singleline | RegexOptions.IgnoreCase); Lenke til kommentar
hockey500 Skrevet 18. januar 2008 Forfatter Rapporter Del Skrevet 18. januar 2008 det funket ikke, da fant den ingen treff i det hele tatt. derimot funka: \S+\s\S+\s*\S* 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å