Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Sie sich wiederholende Untermuster in Python Regex erfassen?

Wie können Sie sich wiederholende Untermuster in Python Regex erfassen?

Susan Sarandon
Susan SarandonOriginal
2024-11-24 12:43:11140Durchsuche

How Can You Capture Repeating Subpatterns in Python Regex?

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!

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