У меня есть текстовый файл, в котором мне нужно заменить отдельные позиции на основе поиска.

Вот что у меня в файле:

abc( xyz (124CKZ7859.pqr) craft(124CKZ7859.trm)
line1
line2
line3
abc( xyz (124CD7859.pqr) craft(124CD7859.pqr.trm)
line1
line2
line3
abc( xyz (128CKZ8559.pqr) craft(124CKZ7859.trm)
line1
line2
line3

Мне нужно найти 5-й символ (в данном случае Z) и удалить всю строку и строки под ней, пока вы не получите следующий набор

Так что результат должен быть

abc( xyz (124CD7859.pqr) craft(124CD7859.pqr.trm)
line1
line2
line3

1 ответ1

1
  • Ctrl+H
  • Найдите что: ^abc\( xyz \(\w{5}Z.+\R(?:.+(?:\R|$)){3}
  • Заменить на: LEAVE EMPTY
  • проверить обернуть
  • проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline
  • Заменить все

Объяснение:

^               : beginning of line
abc\( xyz \(    : literally
\w{5}           : 5 word character
Z               : letter Z
.+              : 1 or more any character but newline
\R              : any kind of linebreak
(?:             : start non capture group
  .+            : 1 or more any character but newline
  (?:\R|$)      : non capture group, linebreak or end of line (for the last line)
){3}            : must appear 3 times

Результат для данного примера:

abc( xyz (124CD7859.pqr) craft(124CD7859.pqr.trm)
line1
line2
line3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .