/ / Regex - Wie die ersten 10 Zeilen / und die letzten 10 Zeilen zu löschen - Regex, Text, Notizblock

Regex - Wie lösche ich die ersten 10 Zeilen / und die letzten 10 Zeilen - Regex, Text, Notizblock

Ich versuche eine Regex zu erstellen, die die ersten und die letzten 10 Zeilen meiner 200 txt Dateien mit "Suchen und Ersetzen alle" löscht.

Ich habe es versucht (s*^(h*S.*)){10} um die ersten 10 Zeilen Leerzeichen zu löschen, aber es funktioniert nicht gut.

Antworten:

2 für die Antwort № 1

In Notepad ++ müssen Sie den gesamten Dokumenttext abgleichen, aber nur die Zeilen von 11 bis zum Ende kapseln.

Finden: A.*(?:R.*){9}R?([sS]*)
Ersetzen: $1

So entfernen Sie die letzten 10 Zeilen:

Finden: ^.*(?:R.*){9}z
Ersetzen: leer

Einzelheiten:

  • A - Beginn des Dokuments
  • .* - alle null oder mehr Zeichen außer Zeilenumbruchzeichen (die gesamte erste Zeile)
  • (?:R.*){9} - 9 Sequenzen eines Zeilenumbrüchens (R) gefolgt von weiteren 0+ Zeichen als Zeilenumbruchzeichen
  • R? - ein optionaler Zeilenumbruch (wenn es nur 10 Zeilen gibt)
  • ([sS]*) - Gruppe 1 erfasst den Rest des Dokuments.

Der zweite Regex:

  • ^ - Beginn einer Linie
  • .* - Die Linie selbst bis zum Zeilenumbruch
  • (?:R.*){9} - 9 Zeilen: Zeilenumbruch + beliebige 0+ Zeichen außer Zeilenumbruchzeichen
  • z - das Ende des Dokuments.

$1 ist die Rückreferenz zu dem in Gruppe 1 gespeicherten Text.

Das Ergebnis des Treffens a Alles ersetzen Schaltfläche in einem Dokument mit mehr als 20 Zeilen, um die ersten 10 Zeilen zu entfernen:

Bildbeschreibung hier eingeben

Und die letzten 10 Zeilen:

Bildbeschreibung hier eingeben


1 für die Antwort № 2

Nur ein einfaches Ersetzen Sie alle mit diesem

(?m)(?:A(?>^.*R?){10}|(?>^.*R?){10}z)

Erweitert

 (?m)
(?:
A
(?> ^ .* R? ){10}
|  (?> ^ .* R? ){10}
z
)

Wenn es das nicht unterstützt R Syntax, ersetzen

(?>rn|n|r|f|x0b|x85) - Ascii
(?>rn|n|r|f|x0b|x85|x{2028}|x{2029}) - Unicode