Ich suche nach einem regulären Ausdruck, um ein paar Zeilen über die übereinstimmende Zeile abzugleichen. Zum Beispiel:
ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX
Ich möchte die 2 Zeilen über dem XXXXXXXX erfassen.
Jede Hilfe wäre dankbar. Hinweis: Verwenden Sie bei Python die Bibliothek re
Antworten:
Das folgende RegEx testet eine variable Anzahl von Zeilen vor der
XXXXXXXX
Zeile und gibt sie in der ersten Erfassungsgruppe zurück.((.*\n){2})XXXXXXXX
(.*\n)
testet auf eine Zeichenfolge, die mit\n
einem Zeilenumbruch endet.{2}
quantifiziert dies 2 mal.()
Dadurch wird sichergestellt, dass alle Zeilen in einer Erfassungsgruppe enthalten sind.XXXXXXXX
ist die Zeichenfolge, mit der der Text enden muss.In Python können Sie jetzt
p.match(regex)[0]
die erste Erfassungsgruppe zurückgeben.quelle
\r\n
statt nur\n
.XXXXXXXX
(aber nicht unbedingt mit endetXXXXXXXX
).Verwenden Sie vor der Antwort von erikgaal ein zusätzliches. * Vor xxxxxx, um Tabulatoren / Leerzeichen zuzuordnen.
((. * \ n) {2}). * xxxxxxx
quelle
.*
passt nicht nur zu Tabulatoren / Leerzeichen. es passt zu allem (z. B. "The quick brown XXXXXXX").