Próbuję utworzyć wyrażenie regularne, które usuwa pierwsze i ostatnie 10 wierszy moich plików 200 txt za pomocą „Wyszukaj i zamień wszystko”
próbowałem (s*^(h*S.*)){10}
aby usunąć pierwsze 10 pustych linii, ale nie działa dobrze.
Odpowiedzi:
2 dla odpowiedzi № 1W Notepad ++ musisz dopasować cały tekst dokumentu, ale tylko ograniczać linie od 11 do końca.
Odnaleźć: A.*(?:R.*){9}R?([sS]*)
Zastąpić: $1
Aby usunąć ostatnie 10 linii:
Odnaleźć: ^.*(?:R.*){9}z
Zastąpić: pusty
Detale:
A
- początek dokumentu.*
- dowolne zero lub więcej znaków innych niż symbole łamania linii (cała pierwsza linia)(?:R.*){9}
- 9 sekwencji przerwania linii (R
) a następnie znaki 0+ inne niż znaki podziału wierszaR?
- opcjonalny podział linii (jeśli jest tylko 10 linii)([sS]*)
- Grupa 1 przechwytuje resztę dokumentu.
Drugi regex:
^
- początek linii.*
- sama linia do przerwania linii(?:R.*){9}
- 9 linii: przerwa linii + dowolne znaki 0+ inne niż znaki podziału liniiz
- koniec dokumentu.
$1
jest odniesieniem wstecznym do tekstu zapisanego w grupie 1.
Wynik trafienia Zamień wszystko przycisk na dokumencie linii 20+, aby usunąć pierwsze 10 linii:
I ostatnie 10 linii:
1 dla odpowiedzi nr 2
Wystarczy proste zastąpienie wszystkiego za pomocą tego
(?m)(?:A(?>^.*R?){10}|(?>^.*R?){10}z)
Rozszerzony
(?m)
(?:
A
(?> ^ .* R? ){10}
| (?> ^ .* R? ){10}
z
)
Jeśli nie, nie obsługuj R
składnia, substytut
(?>rn|n|r|f|x0b|x85)
- Ascii
(?>rn|n|r|f|x0b|x85|x{2028}|x{2029})
- Unicode