Beat: Regulärer Ausdruck in einem Link

Beitrag lesen

ein Link fängt ja bekannterweise mit <a danach kommen attribute wie href oder target.

Ein Link ist ein a Element mit einem href Attribut.
Ein Link ist aber genau so gut auch irgend ein Element im Userinterface, dessen Aktivierung zu einer neuen Ressource navigiert.

Gibt es ein regulärer Ausdruck, womit ich die Zieldatei eines Links bekommen kann?

Nein. Denn für das Bekommen der Zieldatei ist keine RE zuständig.
Du kannst bestenfalls ein url extrahieren.

also das was in href drin ist.

Da kann auch nichts drinnen stehen, und dennoch ist die Ressource festgelegt.

wenn ich weiterdenke, kann ich nur die Zieldatei von Links bekommen, wo das target-attribut "_blank" ist?

Inwiefern beschränken dich deine Denkprozesse?

ich glaube das sollte wohl mit preg_match() gehen aber ich weiss nicht wie.

Ich arbeite nicht mit php, aber mit Perl. Beide anerkennen jedoch fast den gleichen RE-Syntax Umfang.

/<a\s+[^<>]*?\bhref\s*=\s*(["'])(.*?)\1[^<>]*?>/

Die Url liegt jetzt in $2 vor.

Eine Besonderheit ist hier (["']) welches in $1 den Delimiter speichert. Dieser wird dann mit \1 unmittelbar im Pattern wieder verwendet.
Es matcht also href="dies" und href='dies'.

Wenn du aber das href Attribut abhängig von einem target Attribut auslesen willst, ist es besser, mit callback Funktionen zu arbeiten.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische