Maison >développement back-end >Tutoriel Python >Comment capturer plusieurs occurrences d'un sous-modèle dans Python Regex ?
Capturer des modèles répétitifs avec Python Regex
Lorsque vous faites correspondre des modèles complexes tels qu'une adresse e-mail, vous pouvez rencontrer le besoin de capturer plusieurs occurrences de un sous-modèle spécifique. Dans le module d'expression régulière de Python, cela peut présenter un défi.
Prenons l'exemple de la correspondance d'une adresse e-mail telle que "yasar@webmail.something.edu.tr". Après avoir fait correspondre la partie initiale de l'e-mail, vous souhaiterez peut-être capturer une ou plusieurs occurrences du sous-modèle ".(w )".
En essayant d'utiliser l'expression "(.w )", vous avez réalisé que il ne capture que le dernier match. Cela signifie que vous manquez les groupes ".something" et ".edu".
Dans le module d'expression régulière de Python, les captures répétées ne sont pas prises en charge, même si elles sont dans la norme regex. Pour cette raison, capturer tout en même temps, puis diviser les sous-modèles ultérieurement est une approche plus efficace.
Voici un exemple de la façon dont vous pouvez diviser les sous-modèles après avoir capturé l'adresse e-mail à l'aide d'une expression simple :
import re pattern = r'([.\w]+)@((\w+)(\.\w+)+)' match = re.match(pattern, 'yasar@webmail.something.edu.tr') # Split the subpatterns subpatterns = match.group(2).split('.') # Access the subpatterns print(subpatterns[0]) # 'webmail' print(subpatterns[1]) # 'something' print(subpatterns[2]) # 'edu'
Cette méthode vous permet de capturer et d'accéder aux sous-modèles répétés individuellement, offrant une solution simple et lisible.
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!