regex für bestimmtes html tag

K

Kabir

Guest
Hi,
Seit langen muss hab ich mich mal wieder mit regular Expressions auseinandersetzen. Und ich komme einfach nicht weiter.
Ich möchte ein aus einen html-Dokument alle links die zu einen bestimmten Domain zeigen extrahieren.

Alle Links schaffe ich noch:
<a.*?(/>|</a>)

aber
<a.*?domainname.*?(/>|</a>)
funktioniert nicht das immer mehr als das eigentlich Tag selektiert wird. Ist wahrscheinlich für jemand der oft mit regular Expressions arbeitet, einen simple Sache.
Ich würde mich über eine Tip sehr freuen
Danke

 
.* findet ja alles, du willst aber nicht, dass spätestens bei > Schluss ist. Also > exkludieren.
 
Danke ich hatte ein Brett form Kopp, das geht

<a[^<]*?domainname.*?(/>|</a>)
 
QUOTE (Kabir @ Sa 18.09.2010, 14:49)<a.*?domainname.*?(/>|</a>)

Wenn Du in dem Dokument ein a-Element drin hast, das nicht den Domainnamen enthält und etwas später ein a-Element mit Domainnamen, dann liefert diese Anweisung alles ab dem ersten a-Element.

Also stattdessen:


QUOTE <a[^>]*?domainname


sollte funktionieren.

Allerdings steckt ein grundsätzlicher Fehler drin - denn es gibt ja auch andere Html-Elemente, die mit a anfangen.

Besser wäre also


QUOTE <a\b[^>]*?domainname


auf a folgt ein Wortende, wobei ich nicht weiß, ob \b in PHP definiert ist.
 
ja \b ist definiert

<a\b[^<]*?domainname.*?(/>|</a>)
<a\b[^>]*?domainname.*?(/>|</a>)

geht beides. Ohh je, wann man es lange nicht gemacht hat
ohmy.gif
 
QUOTE (Kabir @ Sa 18.09.2010, 16:49)Ohh je, wann man es lange nicht gemacht hat
ohmy.gif


- smile - ging mir ja genauso, für einen Augenblick habe ich auch überlegt, warum das nicht klappt.

Dabei hatte ich doch mal ein RegEx-Tutorial geschrieben
rolleyes.gif
laugh.gif
biggrin.gif



Aber wenn man das mal einige Zeit nicht mehr verwendet ...
 
Zurück
Oben