PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : URLs aus Quelltext auslesen


dagod
27.06.2007, 17:54
Hallo,

ich habe einen Quelltext und möchte Domains aus <a> tags auslesen.

#("|\=)http://([^/\s"]*)(\.+)([A-Za-z0-9^\."\s]+)\.([a-zA-Z^\."/\s]{2,3})(.*)("|\s)#

Die Domainendung hat 2 oder 3 Zeichen, das matcht doch mit {2,3} oder?

Er sollte jetzt auf jeden Fall sowas wie
href="http://www.domain.de/sowaswas"
matchen.

Wie kann ich das jetzt schreiben, sodass er auch matcht, wenn www. nicht dabei ist und dass er auch matcht, wenn z.B.
href="http://blah.www.blub.domain.de"
steht. Beim match soll halt "domain.de" rausgefiltert werden.


Firefall
27.06.2007, 20:36
((X)\.)*((X)\.(X){2,4})
Wobei X jeweils die gültigen Zeichen darstellt, also meistens \w. Bedenke, dass die Toplevel-Domain auch .info sein kann ;) obs längere gibt weis ich grade nicht. Aber theoretisch müssten beliebige viele Zeichen möglich sein.

dagod
27.06.2007, 20:58
((X)\.)*((X)\.(X){2,4})
Wobei X jeweils die gültigen Zeichen darstellt, also meistens \w. Bedenke, dass die Toplevel-Domain auch .info sein kann ;) obs längere gibt weis ich grade nicht. Aber theoretisch müssten beliebige viele Zeichen möglich sein.

also jetzt so?

#("|\=)http://(([^/\s"]*)\.*)([A-Za-z0-9]+[^/\s"]*)\.([a-zA-Z]+[^\."/\s]{2,4})(.*)("|\s)#

können dann beliebig viele www. davor stehen und es matcht dann auch ohne ein einziges www. ?

Mac Fly
27.06.2007, 21:50
Und was is mit domain.co.uk?

dagod
27.06.2007, 22:30
braucht ich nicht.

aber stimmt mein regex jetzt?

Firefall
28.06.2007, 12:19
braucht ich nicht.

aber stimmt mein regex jetzt?
Aber wiso denn so kompliziert?!
#("|\=)http://([A-Za-z0-9]+\.)*([A-Za-z0-9]+)\.([a-zA-Z]+)("|\s)#Wozu das #("|\=) am Anfang und am Schluss ist seh ich nicht ein, aber das ist wohl unwichtig für den Rest.
PS. Nicht fragen obs funktioniert, testen!

eViL_oNe
28.06.2007, 23:37
mal abgesehen davon, dass der Regex hier das "-", das ein gültiges Domain-Zeichen ist ignoriert, wird auch ein gültiger Query-String nicht berücksichtigt ala

http://www.meinedomain.de?key=value

Außerdem werden Pfadangaben und Anker auch nicht berücksichtigt ala

http://www.meinedomain.de/Hauptseite.html#Einleitung

Tipp: folgendes Dokument anschauen und das Pattern daraus ableiten! Insbesondere ist unten die Grammatik der URL beschrieben ;)

http://www.faqs.org/rfcs/rfc1738.html

Firefall
28.06.2007, 23:46
Von diesen Spezialfällen ist ja auch nicht die Rede :)

eViL_oNe
29.06.2007, 22:17
Von diesen Spezialfällen ist ja auch nicht die Rede :)

roflmao!