正则表达式在Notepad ++中查找/替换多个文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式在Notepad ++中查找/替换多个文本相关的知识,希望对你有一定的参考价值。

我正在努力与一些正则表达式查找/替换..

我想搜索一些术语,当它找到任何一个术语时,它会删除它们所在的行以及下一行。我想要搜索的术语中会有引号和逗号。

这些是典型的搜索词(包括引号):

“文字两个”,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

即任何包含上述3个术语中的任何一行的行将被完全删除 - 以及其后续行。

我试过正则表达式搜索/替换:

找什么:-

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

替换为: - (留空)

当我执行'find'和'count'时,它正确地说出了86个匹配。如果我做'替换',它说它已经取代了86个匹配 - 但它实际上已经删除了数千行。困惑......你能帮帮忙吗?我需要一些额外的引用或逃脱字符吗?

答案

如评论中所述,不要检查. matches newline

你也可以简化一下:

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

以上是关于正则表达式在Notepad ++中查找/替换多个文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Notepad++ 正则表达式查找/替换中保留括号

notepad正则怎么替换其中一部分

在 NotePad++ 中使用正则表达式查找多个关键字?

在UltraEdit的查找和替换中使用正则表达式 (转)

教你notepad++用正则表达式替换掉各行逗号前面内容

notepad++正则表达式替换字符串详解