Thomas Voller skrev:
> Jeg har en ASP-funktion, der vha. et regulært udtryk gennemsøger en given
> tekst efter links. Det udtryk ser sådan ud:
>
> objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"
>
> Det virker.. Næsten. For hvis der i teksten der gennemsøges findes et link
> med en skråstreg til sidst, så bliver denne skråstreg ikke inkluderet i
> resultatet. Hvis der f.eks. i teksten findes følgende udtryk:
>
>
http://voller.dk/
>
> Så matcher det regulære udtryk kun
http://voller.dk, altså uden skråstregen
> til sidst. Kan mit regulære udtryk modificeres, sådan at en eventuel
> skråstreg i slutningen af et link bliver inkluderet i søgningen med
> RegExp-objektet?
Jeg har tidligere været med at finde på denne: [1]
[Beklager at linierne er for lange til ikke at blive ombrudt, men kopier
det over i en notepad]
oRegEx.Pattern =
"(((http|https|ftp):\/\/)?[\wæøåÆØÅ\.\-]+\.[A-Za-z]{1,5}(\/[\w\.\/\-]*(\?\S*)?)?)"
' protokol ------^^^^^^^^^^^^^^^^^^^^^^^^^
' domæne ---------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
' muligvis noget efter domænet
-----------------------------------------^----------------------^^
' mulige undermapper og filnavn (indledes med / hvis der er noget)
------^^^^^^^^^^^^^
' mulig querystring (indledes med ? hvis der er noget)
-------------------------------^^^^^^^^^
Jeg tillader æøå i domæner (ikke TLD) og TLD kan være fra 1 til 5
bogstaver. Bemærk også at der kan være bindestreg og punktum i domænet,
og \w matcher ikke disse to tegn.
Det sværeste ved ovenstående er at finde ud af hvornår man skal slutte,
for ofte skrives querystringen ikke urlencoded og kan derfor indeholde
alle tegn. Jeg har sagt at første gang man kommer til tegnene i \s så
stopper vi, det er primært mellemrum, linieskift og tabulatorer.
[1]
<URL:
http://groups.google.dk/groups?hl=da&lr=&ie=UTF-8&oe=UTF-8&selm=3F3C0C18.5030201%40domain.invalid>
mvh Torben