/ / Regex - Jak usunąć pierwsze 10 linii / i 10 ostatnich linii - wyrażenie regularne, tekst, notatnik

Regex - Jak usunąć pierwsze 10 linii / i ostatnie 10 linii - regex, text, notepad

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 № 1

W 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 wiersza
  • R? - 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 linii
  • z - 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:

wprowadź opis obrazu tutaj

I ostatnie 10 linii:

wprowadź opis obrazu tutaj


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