Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich überlappende Übereinstimmungen mithilfe regulärer Python-Ausdrücke finden?

Wie kann ich überlappende Übereinstimmungen mithilfe regulärer Python-Ausdrücke finden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-20 03:27:09213Durchsuche

How Can I Find Overlapping Matches Using Python Regular Expressions?

Überlappende Übereinstimmungen mit regulären Ausdrücken finden

In Python kann mit dem re-Modul das Auffinden aller überlappenden Übereinstimmungen eines Musters durch erreicht werden Verwendung eines Lookaheads, der die gewünschten Übereinstimmungen erfasst und gleichzeitig die tatsächliche Übereinstimmung technisch beibehält nicht überlappend.

Erfassungsgruppen-Lookahead:

Der Schlüssel zur Erfassung überlappender Übereinstimmungen liegt in der Verwendung einer Erfassungsgruppe innerhalb einer Lookahead-Behauptung. Der Lookahead erfasst den gewünschten Text, aber die tatsächliche Übereinstimmung ist der Teilstring mit der Breite Null vor dem Lookahead. Dies ermöglicht technisch nicht überlappende Übereinstimmungen:

import re

s = "123456789123456789"
matches = re.finditer(r'(?=(\d{10}))', s)  # 10-digit number series
results = [int(match.group(1)) for match in matches]

print(results)  # [1234567891, 2345678912, 3456789123, ...]

In diesem Beispiel stimmt das Muster (d{10}) mit 10-stelligen Sequenzen überein, während der Lookahead (?=) deren Vorhandensein erfasst und bestätigt Streichhölzer. Die Übereinstimmungen werden dann mit int(match.group(1)) in ganze Zahlen umgewandelt.

Diese Technik ermöglicht eine effiziente Identifizierung aller überlappenden Übereinstimmungen innerhalb einer größeren Zeichenfolge.

Das obige ist der detaillierte Inhalt vonWie kann ich überlappende Übereinstimmungen mithilfe regulärer Python-Ausdrücke 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