webForumDet fria alternativet

Klurigt regexp

1 svar · 396 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1

Har följande regexp som försöker hitta länkar i en text.

((https?://|www\\.)([A-Z0-9.-:]{1,})\\.[0-9A-Z?;~&#=\\-_\\./]{2,})

Problemet blir vid länkar av detta slag:
http://www.google.se/imgres?imgurl=http://tarras.blogg.se/images/2008/bil2_13615345.jpg&imgrefurl=http://tarras.blogg.se/2008/july/&usg=__OlmTSORNekHZ-ChRYRdzbLH2DTA=&h=400&w=400&sz=20&hl=sv&start=1&zoom=1&itbs=1&tbnid=Kuzf5L2Hfto3VM:&tbnh=124&tbnw=124&prev=/images%3Fq%3Dbil%26hl%3Dsv%26gbv%3D2%26tbs%3Disch:1

Nu kommer den att hitta två länkar istället.

Har försökt att skriva om regular expressionet till att endast hämta då det finns >, white-space eller radbrytning framför länken men får det inte att fungera.

Några lösningar?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

kan du skriva exemplen på vilka den skall träffa på och inte skall träffa på?

har en träff i regexp buddy:

(\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$])

men det är bara vid "text" skall den söka igenom html element eller vad menar du med ">"?

253 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
127 ms — hämta forumlista (db)
120 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)