Maison > développement back-end > tutoriel php > Comment puis-je remplacer des mots entiers dans une chaîne à l'aide d'expressions régulières ?

Comment puis-je remplacer des mots entiers dans une chaîne à l'aide d'expressions régulières ?

Patricia Arquette
Libérer: 2024-12-09 00:59:10
original
848 Les gens l'ont consulté

How Can I Replace Whole Words in a String Using Regular Expressions?

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/
Copier après la connexion

Voici une répartition des pattern :

  • "/" (délimiteur) : Indique le début et la fin de l'expression régulière.
  • "b" (limite du mot) : Correspond au début ou à la fin d'un mot.
  • "Bonjour" (motif) : Le mot auquel vous souhaitez faire correspondre.
  • "/" (délimiteur) : Indique la fin de l'expression régulière.

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;
?>
Copier après la connexion

Explication :

  • La fonction preg_replace() est utilisée pour effectuer le remplacement de l'expression régulière.
  • La fonction régulière L'expression /bHellob/ est utilisée pour rechercher et remplacer les mots entiers correspondant à "Bonjour" par "NEW".
  • Le résultat est stocké dans $newtext.

Sortie :

NEW hello1 hello, Helloz
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal