Problème :
Faire correspondre des mots entiers dans une chaîne à l'aide d'expressions régulières peut être complexe lorsque les mots sont séparés par des espaces et comportent des signes de ponctuation. Cette question explore un moyen de simplifier le processus de correspondance de mots entiers sans nécessiter plusieurs modèles de correspondance.
Comprendre les limites des mots :
La clé pour faire correspondre des mots entiers réside dans l'utilisation "limites des mots" (b). Ce caractère spécial indique au moteur d'expression régulière de localiser les mots dont les caractères environnants ne sont pas des caractères de mots. Ainsi, b...|b correspondra à n'importe quel mot délimité par des caractères autres que des mots.
Implémentation avec une expression unique :
<br>match_string = r'b' word r'b'<br>
En utilisant ce modèle et en échappant aux caractères spéciaux, vous pouvez facilement faire correspondre des mots entiers, même ceux avec une ponctuation environnante.
Correspondance de plusieurs mots entiers :
Si plusieurs mots doivent correspondre à des mots entiers, vous pouvez construire un modèle d'expression régulière en utilisant la limite de mot et l'opérateur pipe (|) :
<br>match_string = r'b(?:{word1})|b(?:{word2})|b(?:{word3})b' # Exemple de modèle pour faire correspondre "word1" , "word2" et "word3"<br>
Ce modèle garantit que seuls les mots spécifiés correspondent à des mots entiers, même dans la chaîne.
Ambiguïté des mots et limites de mots sans ambiguïté :
Dans les cas où les mots à faire correspondre peuvent contenir des caractères spéciaux ou commencer/finir par des caractères autres que des mots, vous pouvez utiliser des limites de mots sans ambiguïté ou des limites d'espaces.
Avantages de l'utilisation des limites de mots :
Exemple de code :
<br>import re</p> <p>string = "mot icimot mot, là mot"<br>words = ["word", "hereword", "there"]<br>match_pattern = r'b(?:{})b'.format('|'.join(words))</p> <p>matches = re.findall(match_pattern, string)<br>print(matches) # Sortie : ['word', 'hereword', 'word']<br>
En incorporant des limites de mots dans vos modèles d'expressions régulières, vous pouvez faire correspondre efficacement et précisément des mots entiers dans une chaîne, même lorsqu'ils sont entourés de signes de ponctuation ou de caractères spéciaux.
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!