Regex?

Tags:    visual-basic

Jeg vil lige starte med at sige at jeg ABSOLUT ikke har forstand på regular expressions.

Jeg er ved at kode et program der skal kunne finde Rapidshare links.
Jeg har derfor rodet lidt med regex, og det er gået helt galt nu.

Jeg har indtil videre fundet ud af at denne:
Fold kodeboks ind/udKode 
kan finde et rapidshare link i en tekststreng. (Jeg prøvede mig frem på www.txt2re.com)

Hvordan får jeg mit program til at kunne finde flere links ad gangen og smide dem alle i en listbox? Altså jeg har en en text1 og en text2 og en commandbutton. i text1 har jeg teksten der skal søges i. Når brugeren trykker på knappen skal de fundne links ende i text2.
Er der nogen der kan hjælpe?
Undskyld jeg skærer det sådan ud i pap men det er nok fordi jeg selv har en anelse svært ved at forstå det :D

På forhånd tak.



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hva er dit input? HTML? og i hvilket format - altså i en stor streng eller linje for linje? Du behøver jo i princippet ikke bruge regulære udtryk til det. Om du bruger det eller bare noget streng-genkendelelse betyder måske 0.1 sekunders forskel på input i størrelse af hjemmesider. Så du kan med fordel vælge det der virker nemmest for dig selv. Du kan jo i princippet bare skanne dit input igennem efter <a href="http://www.rapidshare. og så tage fra http:// hen til det afsluttende gåsetegn. Og så ville jeg måske lave output om til en listbox i stedet for textfield.



Hvad er der nu galt med bare at lave en global regex?

Regex.Matches() returner alle matches i hele strengen. Ellers kan du bare kalde NextMatch() på Match objektet.



ja mit input er HTML. En MASSE HTML.
Kildekoden til over 150 phpBB forum-post sider.
Mit grundlæggende problem er at jeg ikke kan finde ud af at få programmet til at finde mere end et enkelt link.
Har du nogen forslag til hvad jeg kan gøre for at opnå den ønskede funktion?



En ide kunne være at søge efter linket, hvis du finder et, så kopierer det og slette teksten indtil da og så søge igen. Og så bare fortsæt indtil du ikke finder mere..

EKSEMPEL:
Vi søger efter ordet "hej" i en streng:
"bla bla hej bla hej bla bla hej hej"
Du finder det første hej og sletter til lige efter der, så bliver strengen til : " bla hej bla bla hej hej".
Igen, og så bliver den til " bla bla hej hej".
Igen, og så bliver den til " hej".
Kan du følge mig i det? Ellers må du lige poste noget kode og så kan vi kigge på det.



Desuden kan din regex godt forbedres, prøv f.eks.

Fold kodeboks ind/udKode 


Den vil ufortrødent tage alt der starter med http://rapidshare.com (eller dens variant med www), indtil den støder på whitespace eller en " eller '. Jeg har med vilje undladt nogen form for validering af url'en, da det ikke virker til at have den store betydning for dig.



t