Überlappende Übereinstimmungen mit regulären Ausdrücken in Python
Alle Vorkommen eines Musters zu finden, auch wenn sie sich überschneiden, kann eine Herausforderung sein. Mithilfe der Leistungsfähigkeit regulärer Ausdrücke können Sie dieses Problem jedoch mühelos lösen.
Angenommen, Sie müssen jede 10-stellige Zahlenreihe aus einer größeren numerischen Zeichenfolge extrahieren. Anstatt sich auf nicht überlappende Übereinstimmungen zu beschränken, können Sie Überschneidungen berücksichtigen, um eine vollständige Liste zu erstellen.
Um dies zu erreichen, besteht der Schlüssel darin, eine Erfassungsgruppe innerhalb eines Lookaheads einzusetzen. Der Lookahead erfasst die gewünschte Sequenz von Interesse, aber da die tatsächliche Übereinstimmung der Teilstring mit der Breite Null vor dem Lookahead ist, überlappen sich die Übereinstimmungen nicht.
import re s = "123456789123456789" matches = re.finditer(r'(?=(\d{10}))', s) results = [int(match.group(1)) for match in matches] print(results) # [1234567891, 2345678912, 3456789123, ...]
Dieser Ansatz ergibt eine Liste mit den Überlappungen stimmt überein, sodass Sie jede Instanz der angegebenen Ziffernfolge in der Originalzeichenfolge erfassen können.
Das obige ist der detaillierte Inhalt vonWie können die regulären Ausdrücke von Python überlappende Übereinstimmungen finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!