Faire correspondre un mot entier dans une chaîne à l'aide de l'expression régulière dynamique
La tâche de faire correspondre un mot entier dans une chaîne peut être réalisée à l'aide de l'expression régulière. Cependant, créer plusieurs expressions de correspondance pour différents emplacements de mots peut s'avérer fastidieux. Cet article explore une solution concise utilisant les limites de mots.
Utilisation des limites de mots
Les limites de mots, désignées par b, indiquent le début ou la fin d'un mot. En incorporant b dans le modèle regex, nous pouvons faire correspondre des mots entourés de caractères autres que des mots. Le code suivant le démontre :
match_string = r'\b' + word + r'\b' # Or Python 3.7+ only versions: match_string = r'\b{}\b'.format(word) match_string = rf'\b{word}\b'
Ce modèle d'expression régulière correspondra à "mot" dans son ensemble, quelle que soit sa position dans la chaîne.
Correspondance de plusieurs mots
Si plusieurs mots doivent correspondre à des mots entiers, nous pouvons utiliser une liste de mots et créer un modèle comme ceci :
match_string = r'\b(?:{})\b'.format('|'.join(words)) # Or Python 3.7+ only version: match_string = rf'\b(?:{"|".join(words)})\b'
Dans ce modèle, les mots sont enfermés dans un groupe non capturant, garantissant que seuls les mots entiers correspondent.
Considérations sur les limites
Si les "mots" à rechercher contiennent des caractères spéciaux, ils doivent être échappés avant de les utiliser dans le modèle d'expression régulière en utilisant re.escape().
Pour les mots qui commencent ou se terminent par des caractères spéciaux, des limites de mots sans ambiguïté (?
En conclusion, l'utilisation des limites de mots offre une solution pratique moyen de faire correspondre des mots entiers dans une chaîne, éliminant ainsi le besoin de plusieurs expressions de correspondance basées sur l'emplacement des mots.
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!