Recherche et remplacement de correspondances de mots entiers dans une chaîne
Lorsque vous travaillez avec des chaînes, il est courant de devoir remplacer des mots ou des expressions spécifiques. Cependant, la simple utilisation d'une fonction de remplacement de chaîne comme str_replace() peut conduire à des résultats inattendus, car elle remplace toutes les occurrences du modèle quelle que soit sa position dans un mot.
Pour résoudre ce problème, des expressions régulières peuvent être utilisées pour ne correspond qu'aux instances de mots entiers d'un modèle. La clé est le métacaractère de limite de mot, désigné par "b".
Utilisation d'expressions régulières
Pour remplacer uniquement les correspondances de mots entiers, utilisez le modèle d'expression régulière suivant :
/\bHello\b/
Voici une répartition des pattern :
Exemple de mise en œuvre
Considérez le PHP suivant code :
<?php $text = "Hello hellol hello, Helloz"; $newtext = preg_replace('/\bHello\b/', 'NEW', $text); echo $newtext; ?>
Explication :
Sortie :
NEW hello1 hello, Helloz
Considérations Unicode
Si votre texte contient de l'Unicode caractères, vous devrez peut-être ajouter le modificateur « u » à l'expression régulière pour gérer correctement les caractères non latins :
$newtext = preg_replace('/\bHello\b/u', 'NEW', $text);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!