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 № 1In 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 ZeilenumbruchzeichenR?
- 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 Zeilenumbruchzeichenz
- 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:
Und die letzten 10 Zeilen:
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