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!