Regex найти / заменить несколько текстов в Notepad ++ - PullRequest
0 голосов
/ 05 сентября 2018

Я немного борюсь с некоторым поиском / заменой регулярных выражений ..

Я хочу найти некоторые термины, и когда он находит какое-либо из них, он удаляет строку, в которой они находятся, и следующую строку. В терминах, которые я хочу найти, будут кавычки и запятые.

Это типичные поисковые термины (включая кавычки):

"ТЕКСТ ДВА", BB

"ТЕКСТ ТРИ", AA

"ТЕКСТ ЧЕТЫРЕ", AA

Типичный файл (будет содержать 1000 строк):

#text:0 first="blah" second="TEXT ONE",AA | more text
Line 1
#text:0 first="blah" second="TEXT TWO",BB | more text
Line 2
#text:0 first="blah" second="TEXT THREE",AA | more text
Line 3
#text:0 first="blah" second="TEXT FOUR",BB | more text
Line 4
#text:0 first="blah" second="TEXT THREE",AA | more text
Line 5
#text:0 first="blah" second="TEXT FOUR",AA | more text
Line 2

Мне бы хотелось, чтобы результат был:

#text:0 first="blah" second="TEXT ONE",AA | more text
Line 1
#text:0 first="blah" second="TEXT FOUR",BB | more text
Line 4

т.е. любая строка, содержащая любое из трех указанных выше терминов, будет полностью удалена вместе со следующей строкой.

Я попытался найти / заменить регулярное выражение:

Найти что: -

.*"TEXT TWO",BB.*\R.*(?:\R|$)|.*"TEXT THREE",AA.*\R.*(?:\R|$)|.*"TEXT FOUR",AA.*\R.*(?:\R|$)

Заменить на: - (оставьте пустым)

Когда я делаю «найти» и «подсчитать», там правильно написано 86 совпадений. Если я сделаю «Заменить», он скажет, что он заменил 86 совпадений - НО фактически удалил тысячи строк. Смущенный… Можете ли вы помочь, пожалуйста? Нужны ли мне дополнительные цитаты или экранирующие символы?

1 Ответ

0 голосов
/ 05 сентября 2018

Как сказано в комментарии, не проверяйте . matches newline.

Вы также можете немного упростить:

^.*(?:”TEXT TWO”,BB|”TEXT THREE”,AA|”TEXT FOUR”,AA).*\R.*(?:\R|$)
...