Bonjour,

J’ai des articles, je veux passer des noms propres en majuscules dans le texte en minuscules.

La regex semble faire la sélection, mais impossible de faire le remplacement.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$chaine="M Alexandre DURAND et Mme DUPOND Agathe vont à ... ";
$result=preg_replace('~\b[[:upper:]]*\b~', '${1}', $chaine);
$result2=preg_replace('~\b[[:upper:]]*\b~', ucfirst(strtolower('\\0')), $chaine);
$result3=preg_replace('~\b[[:upper:]]*\b~', ucfirst(strtolower('$0')), $chaine);
echo $result.$result2.$result3;
aussi essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$re = '~\b[[:upper:]]*\b~';
$subst = strtolower('\\0');
$result = preg_replace($re, $subst, $chaine, -1);
généré via regex101.com

Aucun n'est interprété, au mieux j'obtiens la chaine identique, en php5 ou 7.
Une idée de ce qui cloche ?
Merci