/ / Regex - як видалити перші 10 рядків / і останні 10 рядків - регулярний вираз, текст, блокнот

Regex - Як видалити перші 10 рядків / і останні 10 рядків - регулярний вираз, текст, блокнот

Я намагаюся виділити регулярний вираз, який видаляє перші та останні 10 рядків моїх 200-титексових файлів за допомогою "Пошук і заміна всіх"

я намагався (s*^(h*S.*)){10} щоб видалити перші 10 рядків заголовків, але це не працює добре.

Відповіді:

2 для відповіді № 1

У Notepad ++ потрібно буде збігатись із текстом документа, але лише з 11 до кінця.

Знайдіть: A.*(?:R.*){9}R?([sS]*)
Замініть: $1

Щоб видалити останні 10 рядків:

Знайдіть: ^.*(?:R.*){9}z
Замініть: порожній

Подробиці:

  • A - початок документа
  • .* - будь-який нуль або більше символів, відмінних від символів переривання рядка (вся перша рядок)
  • (?:R.*){9} - 9 послідовностей переривання рядків (R), а потім - з будь-якими символами 0+, відмінними від символів переривання рядка
  • R? - необов'язковий перерва рядка (якщо є лише 10 рядків)
  • ([sS]*) - Група 1, яка фіксує решту документа.

Другий регулярний вираз:

  • ^ - початок рядка
  • .* - сама лінія до розриву рядка
  • (?:R.*){9} - 9 рядків: переривання рядків + будь-які символи 0+, відмінності від символів переривання рядка
  • z - кінець документа.

$1 це зворотне посилання на текст, що зберігається в групі 1.

Результат попадання а Замінити все кнопка на 20 + лінійний документ, щоб видалити перші 10 рядків:

введіть опис зображення тут

І останні 10 рядків:

введіть опис зображення тут


1 для відповіді № 2

Просто замініть все, використовуючи це

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

Розгорнуто

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

Якщо це не підтримує R синтаксис, замінити

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