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 sind:
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:
import re
pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
Sie können dann die match()-Methode verwenden, um Übereinstimmungen in einer Zeichenfolge zu finden :
match = pattern.match(text)
if match:
text1 = match.group(1)
text2 = match.group(2)
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3