Martin C.: RegExp. versagt..

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.

  1. War'n Fehler in einem vorhergehenden preg_replace() Aufruf.. ;o)

    Danke trotzdem..

  2. 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 -

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    ss:| zu:( ls:$ fo:! de:] va:| ch:? sh:) n4:# rl:? br:& js:| ie:) fl:| mo:|