Maison > développement back-end > Tutoriel Python > Comment trouver toutes les correspondances qui se chevauchent à l'aide de Python Regex ?

Comment trouver toutes les correspondances qui se chevauchent à l'aide de Python Regex ?

Susan Sarandon
Libérer: 2024-12-16 03:57:15
original
499 Les gens l'ont consulté

How to Find All Overlapping Matches Using Python Regex?

Recherche de correspondances qui se chevauchent à l'aide de Regex en Python

Dans les opérations de recherche, il est souvent nécessaire d'identifier et de récupérer plusieurs occurrences d'un modèle spécifique dans un texte plus grand. Lorsque les correspondances se chevauchent, les techniques de correspondance d'expressions régulières standard peuvent manquer certaines instances. Cette question explore comment trouver toutes les correspondances qui se chevauchent à l'aide des expressions régulières de Python.

L'objectif est d'extraire chaque ensemble de nombres à 10 chiffres dans une séquence de nombres donnée. Par exemple, dans la chaîne "123456789123456789", nous visons à obtenir :

[1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789]
Copier après la connexion

Capturer des groupes et des anticipations

Pour y parvenir, nous employons un groupe de capture au sein de une anticipation. La recherche anticipée identifie le texte qui vous intéresse (ici, les nombres à 10 chiffres), mais la correspondance réelle est la sous-chaîne de largeur nulle avant la recherche anticipée. Il en résulte des correspondances qui ne se chevauchent pas.

Mise en œuvre

En utilisant la méthode finditer, nous pouvons obtenir les correspondances comme suit :

import re
s = "123456789123456789"
matches = re.finditer(r'(?=(\d{10}))', s)
results = [int(match.group(1)) for match in matches]
Copier après la connexion

Le les résultats de sortie renvoient la liste souhaitée des correspondances qui se chevauchent :

[1234567891,
 2345678912,
 3456789123,
 4567891234,
 5678912345,
 6789123456,
 7891234567,
 8912345678,
 9123456789]
Copier après la connexion

Cette approche extrait efficacement toutes les occurrences qui se chevauchent de le modèle spécifié, fournissant une technique précieuse pour un traitement de texte complet.

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