[Résolu] Récursivité dans une regex (comment ??)

WRInaute passionné
Je souhaite appliqué un caractère comme séparateur de millierà la place de l'espace conventionnel.



Code:
echo '<p>'.preg_replace('/([0-9]{1,3}) ([0-9]{3})/', '$1***$2', 'Le nombre 111 222 333 444 555 666 777 888 999 est très grand'); // séparateur insécable de millier.'</p>';

m'affiche :

Le nombre 111***222 333***444 555***666 777***888 999 est très grand

Je n'arrive pas à trouver comment rendre récursive cette regex pour afficher : (sachant que l'on ne connait pas la taille du nombre en question

Le nombre 111***222***333***444***555***666***777***888***999 est très grand
 
WRInaute impliqué
Quelque chose comme ça:
Code:
preg_replace( '/([0-9]+)\s([0-9]+)/U', '$1***$2', 'Le nombre 111 222 333 444 555 666 777 888 999 est très grand' );
 
WRInaute passionné
J'avais mal lu l'ennonce du probleme, tu voulais juste transformer l'espace en virgule. C'est effectivement beaucoup plus simple.

Ma "belle" regexp insere automatiquement les virgules. Et la, le Ungreedy ne suffit plus, il faut un Lookbehind.
 
WRInaute passionné
Dans la réalité, je veux transformer l'espace par un espace insécable pour le séparateur de miller. (le nombre n'est pas coupé en fin de ligne)
 
Discussions similaires
Haut