Abgleichen und Erfassen sich wiederholender Untermuster in Python Regex
Beim Abgleichen komplexer Muster wie E-Mail-Adressen ist es häufig erforderlich, sich wiederholende Untermuster zu erfassen. Beispielsweise müssen wir in einer E-Mail-Adresse wie „yasar@webmail.something.edu.tr“ die Domänenteile „.something“ und „.edu“ erfassen. Regex bietet eine Möglichkeit, dies durch wiederholte Erfassungsgruppen zu erreichen. Das Python-Re-Modul unterstützt es jedoch nicht vollständig.
Option 1: Verwenden des Python-Re-Moduls
Wenn Sie versuchen, ein Muster wie (.w) mit zu verwenden Betreff: Es wird nur die letzte übereinstimmende Gruppe erfasst und nicht alle Vorkommen. Mit [email protected] würde es beispielsweise nur „.tr“ erfassen und „.something“ und „.edu“ übersehen.
Option 2: Später teilen und abgleichen
Wie aus der bereitgestellten Antwort hervorgeht, besteht ein einfacherer Ansatz in Python darin, zunächst alles abzugleichen und dann die erfassten Untermuster mithilfe von String-Manipulation aufzuteilen. Dies kann einfacher zu lesen und umzusetzen sein. Zum Beispiel:
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)
Dieser Code erfasst die gesamte E-Mail-Adresse und teilt dann die Domain in ihre Teile auf, sodass wir auf jedes Untermuster separat zugreifen und es speichern können.
Das obige ist der detaillierte Inhalt vonWie können Sie sich wiederholende Untermuster in Python Regex erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!