Yadgar: Reguläre Ausdrücke mit strchr bzw. strrchr?

Beitrag lesen

hi,

Wenn du reguläre Ausdrücke verwenden willst, solltest du die dafür zuständigen Funktionen benutzen.

Okay, dann eregi_replace()... eigentlich sollte dann

$reg ="((<)|(</))[^p]{1}.*";
eregi_replace($reg, "", $puffer);

bewirken, dass ab dem ersten öffnenden oder schließenden Tag, das nicht p (bzw. P) enthält (genauer, jedes andere Zeichen außer p (bzw. P) und null bis beliebig viele weitere Zeichen, alles durch einen Leerstring ersetzt wird.

Tut es aber nicht, statt dessen löscht es alles ab dem ersten </p>-Tag... was ja auch kein Wunder ist, da die Bedingung nicht eindeutig ist: der Parser kann nicht zwischen < am Anfang und nachfolgendem / als nichtzugelassenem Zeichen und </ am Anfang unterscheiden.

Aber wenn ich die Bedingung so formuliere, dass dieser Umstand berücksichtigt wird:

$reg ="(<)([^p]&[^/]).*";

werden Nicht-<p>...</p>-Tags überhaupt nicht gefunden!

Was mache ich falsch?

Bis bald im Khyberspace!

Yadgar