[Résolu] Conception d'une regex - Holy - 12-04-2011
Bonjour,
J'ai un p'tit soucis dans la conception d'une regex qui, à priori, a l'air plutôt simple.
Voilà l'intitulé exacte de ma regex :
Transformer 'eu' en 'oe' à l'intérieur de la chaine (donc 'eu' ne peut se trouver ni au début, ni à la fin de la chaine). En sachant qu'il peut y avoir plusieurs 'eu' au sein de cette chaine.
Exemple : heureux deviendrait hoeroex, heure deviendrait hoere, euheuheu deviendrait euhoeheu (début de chaine et fin de chaine).
Jusqu'ici je n'arrive à en changer qu'un seul des 'eu' de heureux !
Si vous pouvez m'filer un p'tit coup de pouce, j'suis preneur
Holy
Ps : j'insiste pour que la solution se fasse via Regex ^^
RE: Conception d'une regex - Sephi-Chan - 12-04-2011
Il suffit normalement d'ajouter le flag G à ta Regexp.
Montre-nous le code que tu as pour le moment.
RE: Conception d'une regex - Holy - 12-04-2011
Ma regex ressemble à ça :
Code : <?php
$sWord = preg_replace('#([^eu]+)(eu)+([^eu]+)#u', '$1oe$3', 'heureux');
?>
Edition : au fait, le flag 'G' existe pas sous PCRE.
RE: Conception d'une regex - niahoo - 12-04-2011
J'ai trouvé un truc
Code : php > echo preg_replace('/(?=\B)eu(?=\B)/', '$1xx$2', 'euheukeuheu');
euhxxkxxheu
RE: Conception d'une regex - Holy - 12-04-2011
(12-04-2011, 05:10 PM)niahoo a écrit : J'ai trouvé un truc
Code : php > echo preg_replace('/(?=\B)eu(?=\B)/', '$1xx$2', 'euheukeuheu');
euhxxkxxheu
Impec !
Un tout grand merci à toi. So easy :o
RE: [Résolu] Conception d'une regex - niahoo - 12-04-2011
du coup on peut virer les $
Code : preg_replace('/(?=\B)eu(?=\B)/', 'xx' …
mais c'était pas si "easy"
Code : php -a
Interactive shell
php > echo preg_replace('#^.+(eu).+$#', 'xx', 'euheuheu');
xx
php > echo preg_replace('#^.+(eu).+$#uG', 'xx', 'euheuheu');
Warning: preg_replace(): Unknown modifier 'G' in php shell code on line 1
php > echo preg_replace('#^.+(eu).+$#u', 'xx', 'euheuheu');
xx
php > echo preg_replace('#^(.+)(eu)(.+)$#u', '$1xx$3', 'euheuheu');
euhxxheu
php > echo preg_replace('#^(.+)(eu)(.+)$#u', '$1xx$3', 'euheukeuheu');
euheukxxheu
php > echo preg_replace('#(.+)(eu)(.+)#u', '$1xx$3', 'euheukeuheu');
euheukxxheu
php > echo preg_replace('#.+(eu).+#u', '$1xx$3', 'euheukeuheu');
euxx
php > echo preg_replace('#(.+)(eu)(.+)#u', '$1xx$3', 'euheukeuheu');
euheukxxheu
php > echo preg_replace('#(.+)(eu)(.+)#u', 'xx', 'euheukeuheu');
xx
php > echo preg_replace('/eu/u', 'xx', 'euheukeuheu');
xxhxxkxxhxx
php > echo preg_replace('/(.+)eu(.+)/u', '$1xx$2', 'euheukeuheu');
euheukxxheu
php > echo preg_replace('/(.+)eu(.+)/m', '$1xx$2', 'euheukeuheu');
euheukxxheu
php > echo preg_replace('/(.+)eu(.+)/msi', '$1xx$2', 'euheukeuheu');
euheukxxheu
php > echo preg_replace('/(.+)eu(.+)/msiUM', '$1xx$2', 'euheukeuheu');
Warning: preg_replace(): Unknown modifier 'M' in php shell code on line 1
php > echo preg_replace('/eu/msiU', '$1xx$2', 'euheukeuheu');
xxhxxkxxhxx
php > echo preg_replace('/eu/B', '$1xx$2', 'euheukeuheu');
Warning: preg_replace(): Unknown modifier 'B' in php shell code on line 1
php > echo preg_replace('/eu/b', '$1xx$2', 'euheukeuheu');
Warning: preg_replace(): Unknown modifier 'b' in php shell code on line 1
php > echo preg_replace('/eu//b', '$1xx$2', 'euheukeuheu');
Warning: preg_replace(): Unknown modifier '/' in php shell code on line 1
php > echo preg_replace('/eu(?=\B)/', '$1xx$2', 'euheukeuheu');
xxhxxkxxheu
php > echo preg_replace('/(?!\B)eu(?=\B)/', '$1xx$2', 'euheukeuheu');
xxheukeuheu
php > echo preg_replace('/(?=\B)eu(?=\B)/', '$1xx$2', 'euheukeuheu');
euhxxkxxheu
php > echo preg_replace('/(?=\B)eu(?=\B)/', 'xx', 'euheukeuheu');
euhxxkxxheu
php > echo preg_replace('/(?=\B)eu(?=\B)/', 'xx', ' qzdq qzdkkkqdz jk euheukeuheu qzdd ,qzdueuiqsefioquioeruioqefj< eqeriuei');
qzdq qzdkkkqdz jk euhxxkxxheu qzdd ,qzduxxiqsefioquioeruioqefj< eqeriuei
php >
|