Heim >Backend-Entwicklung >Python-Tutorial >Wie erfasst man mehrzeilige Textblöcke mit regulären Ausdrücken?
Regulärer Ausdruck zum Abgleichen mehrzeiliger Textblöcke
Der Abgleich von Text, der sich über mehrere Zeilen erstreckt, kann bei der Erstellung regulärer Ausdrücke eine Herausforderung darstellen. Betrachten Sie den folgenden Beispieltext:
some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, there is a variable number of lines here] (repeat the above a few hundred times)
Das Ziel besteht darin, zwei Komponenten zu erfassen: den Teil „irgendein variierender TEXT“ und alle nachfolgenden Zeilen mit Großbuchstaben, mit Ausnahme der Leerzeile.
Falsche Ansätze:
Einige falsche Ansätze zur Lösung dieses Problems umfassen:
Lösung:
Der folgende reguläre Ausdruck erfasst die gewünschten Komponenten korrekt:
^(.+)\n((?:\n.+)+)
Hier ist eine Aufschlüsselung seiner Komponenten:
Verwendung:
Um diesen regulären Ausdruck in Python zu verwenden, können Sie den folgenden Code verwenden:
<code class="python">import re pattern = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)</code>
Sie können dann die Methode match() verwenden, um Übereinstimmungen in einer Zeichenfolge zu finden:
<code class="python">match = pattern.match(text) if match: text1 = match.group(1) text2 = match.group(2)</code>
Das obige ist der detaillierte Inhalt vonWie erfasst man mehrzeilige Textblöcke mit regulären Ausdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!