Heim >Backend-Entwicklung >Python-Tutorial >Wie können die regulären Ausdrücke von Python überlappende Übereinstimmungen finden?

Wie können die regulären Ausdrücke von Python überlappende Übereinstimmungen finden?

DDD
DDDOriginal
2024-12-17 08:32:24413Durchsuche

How Can Python's Regular Expressions Find Overlapping Matches?

Ü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!

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