par
Ripat » 20 avr. 2012, 22:54
Bonsoir à tous,
C'est possible en utilisant une assertion arrière négative (negative lookbehind)
preg_replace('#(?<![0-9])0,#', ',', $var)
(?<![0-9]) veut dire, si on ne trouve pas de chiffre devant le zéro, on fait le replace.
Ou, plus simplement en utilisant l'assertion simple \b qui marque une limite de mot:
preg_replace('#\b0,#', ',', $texte)
Théorie:
http://www.lumadis.be/regex/tuto_pcre.php#look
http://www.lumadis.be/regex/tuto_pcre.php#asser
Test du motif:
http://lumadis.be/regex/test_regex.php?id=1149
Bonsoir à tous,
C'est possible en utilisant une assertion arrière négative (negative lookbehind)
[php]preg_replace('#(?<![0-9])0,#', ',', $var)[/php][b](?<![0-9])[/b] veut dire, si on ne trouve pas de chiffre devant le zéro, on fait le replace.
Ou, plus simplement en utilisant l'assertion simple \b qui marque une limite de mot:
[php]preg_replace('#\b0,#', ',', $texte)[/php]
Théorie: http://www.lumadis.be/regex/tuto_pcre.php#look
http://www.lumadis.be/regex/tuto_pcre.php#asser
Test du motif: http://lumadis.be/regex/test_regex.php?id=1149