Avatar billede juggalo Nybegynder
28. februar 2007 - 15:17 Der er 1 kommentar

Regular Expression hjælp

Jeg har en stak HTML som jeg gerne vil parse for links.

Jeg bruger dette regexp

href=.*?[> ]

Det giver matches som f.eks.

href="catalogues.cfm?strKeySupplier=2591">
href="http://ad1.emediate.dk/eas?cu=1328;ty=ct"

Jeg er naturligvis interesseret i det der står mellem de 2 "'er.

Mit spørgsmål, kan jeg lave dette i ét regexp eller skal jeg have lavet et mere for at parse resultatet af det første?
Avatar billede fennec Nybegynder
28. februar 2007 - 16:51 #1
Ikke helt med på hvad du har gang i, men måske () er det du skal bruge:
Rx.pattern = "href=""(.*?)"""

Du kan så bruge $x til at trække de enkelte værdier ud, i henhold til antallet af parentes grupper. Se dette script:

minTekst = "en tekst med link http://www.mitSite.dk som bliver klikbar"
Set Rx = New RegExp
Rx.Global = True
Rx.IgnoreCase = True
Rx.Pattern = "(http:\/\/)([\w\._-]+\.[\w\._-]+\S*)"
minTekst = Rx.Replace(minTekst , "<a href='$1$2' target='_blank'>$2</a>")
response.write minTekst

Den finder alle links i en tekst og sætter dem ind i et <a> tag. Læg mærke til de to parentes grupper og $1 og $2. Den indsætter både $1 og $2 i href og vi får derfor hele linket her, men den indsætter kun $2 mellem taget, hvorfor "http://" ikke kommer med ud her.
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