Maison > développement back-end > Tutoriel Python > Comment pouvez-vous capturer des sous-modèles répétitifs dans Python Regex ?

Comment pouvez-vous capturer des sous-modèles répétitifs dans Python Regex ?

Susan Sarandon
Libérer: 2024-11-24 12:43:11
original
254 Les gens l'ont consulté

How Can You Capture Repeating Subpatterns in Python Regex?

Correspondance et capture de sous-modèles répétitifs dans Python Regex

Lors de la mise en correspondance de modèles complexes comme les adresses e-mail, il est souvent nécessaire de capturer des sous-modèles répétitifs. Par exemple, dans une adresse e-mail telle que « yasar@webmail.something.edu.tr », nous devons capturer les parties de domaine « .something » et « .edu ». Regex fournit un moyen de le faire grâce à des groupes de capture répétés. Cependant, le module re de Python ne le prend pas entièrement en charge.

Option 1 : Utiliser le module re de Python

Si vous essayez d'utiliser un modèle comme (.w ) avec re, il capturera uniquement le dernier groupe correspondant au lieu de toutes les occurrences. Par exemple, avec [email protected], il capturerait uniquement « .tr » et manquerait « .something » et « .edu ».

Option 2 : fractionnement et correspondance plus tard

Comme le suggère la réponse fournie, une approche plus simple en Python consiste à tout faire correspondre dans un premier temps, puis à diviser les sous-modèles capturés à l'aide de la manipulation de chaînes. Cela peut être plus facile à lire et à mettre en œuvre. Par exemple :

import re

# Match the entire email address
email_pattern = re.compile(r'([^\s@]+)@(\w+\.\w+)')
match = email_pattern.match('[email protected]')
if match:
    # Split the domain portion
    domain = match.group(2)
    domain_parts = domain.split('.')
    print('Domain Parts:', domain_parts)
Copier après la connexion

Ce code capture l'intégralité de l'adresse e-mail, puis divise le domaine en plusieurs parties, nous permettant d'accéder et de stocker chaque sous-modèle séparément.

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!

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