Heim >Backend-Entwicklung >Python-Tutorial >Wie erfasst man mehrere Vorkommen eines Untermusters in Python Regex?

Wie erfasst man mehrere Vorkommen eines Untermusters in Python Regex?

Barbara Streisand
Barbara StreisandOriginal
2024-11-30 22:27:16995Durchsuche

How to Capture Multiple Occurrences of a Subpattern in Python Regex?

Erfassen sich wiederholender Muster mit Python Regex

Beim Abgleich komplexer Muster wie einer E-Mail-Adresse kann es erforderlich sein, mehrere Vorkommen von zu erfassen ein bestimmtes Untermuster. Im Python-Modul für reguläre Ausdrücke kann dies eine Herausforderung darstellen.

Betrachten Sie das Beispiel des Abgleichs einer E-Mail-Adresse wie „yasar@webmail.something.edu.tr“. Nachdem Sie den ersten Teil der E-Mail abgeglichen haben, möchten Sie möglicherweise ein oder mehrere Vorkommen des Untermusters „.(w)“ erfassen.

Beim Versuch, den Ausdruck „(.w)“ zu verwenden, ist Ihnen das aufgefallen es erfasst nur das letzte Spiel. Dies bedeutet, dass Sie die Gruppen „.something“ und „.edu“ verpassen.

Im regulären Ausdrucksmodul von Python werden wiederholte Erfassungen nicht unterstützt, obwohl sie im Regex-Standard enthalten sind. Aus diesem Grund ist es effektiver, alles auf einmal zu erfassen und die Teilmuster später aufzuteilen.

Hier ist ein Beispiel dafür, wie Sie die Teilmuster nach der Erfassung der E-Mail-Adresse mithilfe eines einfachen Ausdrucks aufteilen können:

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'

Mit dieser Methode können Sie die wiederholten Untermuster einzeln erfassen und darauf zugreifen und so eine unkomplizierte und lesbare Lösung bereitstellen.

Das obige ist der detaillierte Inhalt vonWie erfasst man mehrere Vorkommen eines Untermusters in Python Regex?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn