Я намагаюся виділити регулярний вираз, який видаляє перші та останні 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