Beste PHP-ers,

ik ben op zoek naar de juiste regex voor een preg_replace();...

De string die ik wil bewerken met preg_replace ziet er ongeveer zo uit en kan bij elke oproep van de pagina veranderen:


\0\0\0\0\00,\0\0-\0\0\0M \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0bjbj\This is a message with the number 121.001...


Nu moet ik dus een regex hebben, die deze string dynamisch verwijderd en de rest van de tekst laat staan.

Na de preg_replace met de bovenstaande voorbeeld code moet dan dit overblijven:


This is a message with the number 121.001...


Met Google, etc. kon ik 't niet vinden...


Alvast bedankt voor alle hulp.


Greetz, Mike

Bedankt voor je reactie.

Bij mij werkt je RE niet?!

Enig idee...?
Ik ga je de regex, je moet hem zelf nog voorzien van delimiters.

Verder, wat werkt er niet? "Hij werkt niet" kan van alles zijn...
Staat het bericht altijd op het einde? gebruik dan preg_match *heb ik ook pas geleden leren gebruiken, door iemand op php hulp.*


<?
$input = '\0\0\0\0\00,\0\0-\0\0\0M \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0bjbj\This is a message with the number 121.001...';
$regex = "/0bjbj\\\(.*)/";
preg_match($regex, $input, $match);
echo $match[1];
?>
Sure, ty for the tip...

'k zal 't ff uitprobere!
No problem. Ik zou wel nog even wachten, ik kan dit pas een dag, dus de kans dat er iemand slimmer voorbij komt en me verbeterd is groot.
Wat je doet is niet echt handig, de regex die ik gaf scheelt genoeg geheugen.

<?
$input = '\0\0\0\0\00,\0\0-\0\0\0M \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0bjbj\This is a message with the number 121.001...';
$regex = '{(?<=\\0bjbj\\\\).*}';
if (preg_match($regex, $input, $match)) {
    echo $match[0];
}
?>


Zie ook: http://wiki.phpfreakz.nl/Regexes:_Veelgemaakte_fouten

Reageren