正则表达式在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 ++中查找/替换多个文本的主要内容,如果未能解决你的问题,请参考以下文章