RegExp. versagt..
Martin C.
- php
Hallo,
ich habe einen ellenlangen Text in dem diverse _wilde_ Sachen drin vorkommen... Gut, diese lösche ich eben raus, weil ich sie nicht benötige.
Bis auf einen String, der bleibt einfach stehen ..
der gewisse String + bissl drum herum sieht so aus..:
\wildcrd \li0\ri0 \faauto00\blah0\blah\etc....
Alles mögliche lässt sich mittels preg_replace() wunderbar entfernen/ersetzen .. nur eben nicht "\faauto00"
Eigentlich sollte es doch so gehen (in $buffer befindet sich der Text):
$buffer = preg_replace("/\(faauto(\d\d)?)/","",$buffer);
dies allerdings lässt "00" stehen, warum? Wenn ich folgendes hinschreibe:
$buffer = preg_replace("/\(faauto00)/","",$buffer);
..wird der Ausdruck garnicht gefunden und bleibt komplett stehen.
Da laut Hexeditor diese _Null_ (wie es scheint) einen Hexwert von 30 hat, dachte ich es gänge evtl. so:
$buffer = preg_replace("/\(faauto\x30\x30)/","",$buffer);
nix is... ebenfalls belibt alles stehen.
Und wenn ich statt dieser 2 komischen Zeichen halt dem entsprechend Punkte notiere "/\(faauto(.){2}/" wird "in00" (ohne Anfürhrungszeichen) zurückgegeben ..??!
Kurzum: ich bin etwas ratlos.. hoffe es kann jemand helfen, danke.
War'n Fehler in einem vorhergehenden preg_replace() Aufruf.. ;o)
Danke trotzdem..
Hallo,
$buffer = preg_replace("/\(faauto(\d\d)?)/","",$buffer);
versuch mal folgendes:
\\
$buffer = preg_replace("/\(faauto(?:\d\d)?)/","",$buffer);
///
vielleicht nützt das was.
...aber ich stehe gerade auf dem Schlauch: warum sind da am Anfang _drei_ Backslashes? Würden da nicht zwei reichen? Oder übersehe ich etwas?
Gruß,
KonRad -