Maison > développement back-end > Tutoriel Python > Comment puis-je trouver des correspondances qui se chevauchent à l'aide d'expressions régulières en Python ?

Comment puis-je trouver des correspondances qui se chevauchent à l'aide d'expressions régulières en Python ?

DDD
Libérer: 2024-12-06 13:02:12
original
309 Les gens l'ont consulté

How Can I Find Overlapping Matches Using Regular Expressions in Python?

Comprendre les correspondances qui se chevauchent avec des expressions régulières

Lors de l'utilisation d'expressions régulières, il est important de considérer la manière dont les correspondances qui se chevauchent sont gérées. En Python, le comportement par défaut de re.findall est de renvoyer uniquement les correspondances qui ne se chevauchent pas.

Comportement par défaut : correspondances qui ne se chevauchent pas

Par exemple, considérons l'expression :

>>> match = re.findall(r'\w\w', 'hello')
Copier après la connexion

Comme prévu, la variable de correspondance contient ['he', 'll']. L'expression fait correspondre deux caractères consécutifs à la fois, ce qui entraîne des correspondances qui ne se chevauchent pas.

Correspondances superposées avec des assertions anticipées

Pour rechercher des correspondances qui se chevauchent, vous pouvez utiliser des assertions anticipées. La syntaxe d'une assertion anticipée est :

(?=...)
Copier après la connexion

où ... représente une expression régulière qui correspond à la sous-chaîne souhaitée.

Par exemple, l'expression :

>>> re.findall(r'(?=(\w\w))', 'hello')
Copier après la connexion

renvoie ['he', 'el', 'll', 'lo']. L'assertion d'anticipation (?=(ww)) vérifie si les deux caractères suivants de la chaîne correspondent au modèle ww, sans les consommer. Étant donné que chaque paire de caractères consécutives satisfait à ce critère, toutes les correspondances possibles qui se chevauchent sont trouvées.

Conclusion

En tirant parti des assertions anticipées, vous pouvez facilement trouver des correspondances qui se chevauchent avec des expressions régulières. Il s'agit d'une technique puissante pour des tâches telles que l'extraction de sous-chaînes ou la validation de chaînes d'entrée.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal