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!