RegEX -- im Coach klappts, in Praxis nicht

  • Themenstarter Themenstarter ByeBye 8492
  • Beginndatum Beginndatum
In dem Tutorial ist in der Tat diese Sache nicht beschrieben....
das was ich meinte, ist auch vielmehr eine rückschauende Bedingung als eine Referenz, ich hab mich da falsch
icon4.gif
:-) ausgedrückt:-(

Code:
$text = preg_replace('"((?<!url(=|]))((https?){1}:\/\/)+)"i',"<a class=\"icontent\" href=\"\\1\" target=\"_blank\">\\1</a>", $text);

Der entscheidende Teil:
Code:
(?<!url(=|]))
Mit ?<! wird eine rückschauende, nicht übereinstimmende Bedingung eingeleitet.
Folgt das eigentliche Suchmuster dieser Bedingung, gilt es als nicht erfüllt.
Die Bedingung selbst, welche nicht erfüllt sein darf:
url(=|])
...die Zeichenkette url, gefolgt von = oder ]

Die URL wird also in diesen Fällen...

http://.....
bzw.
http://....


...nicht ersetzt.

Falls du damit rumprobierst, sei gleich angemerkt, dass solche Bedingungen eine feste Länge haben müssen.

Muster wie

(?<!bla(bla|blubb))

oder

(?<!blub.*)

funktionieren also nicht....
 
Zuletzt bearbeitet:
Zurück