匹配所有内容但排除单词 - notepad ++

时间:2017-06-22 11:51:03

标签: regex notepad++

输入:

start
some
T1
random
T2
text
T3
end

应该导致:

start
T1
T2
T3
end

我尝试使用

>(?<=start)[\S\s]*?(?=end)

匹配开始和结束之间的所有内容

并将T1 T2 T3排除在:

^(?!T\d)

是否有可能将它们组合成一个可以粘贴到记事本++中的正则表达式,以便那些不熟悉编写代码的人在几次传递中执行它?

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

查找: ^(?!T\d|start).*\R(?=(^(?!start$).*\R)*end$)
替换:(空)
.匹配换行符:

点击“全部替换”

这些假设是:

  • startend分隔符应该是其中唯一的文字(因此不是---startstart ///),
  • 它们应按正确顺序成对出现(首先start然后end
  • 它们不应该嵌套,因此在start之后start无法再来end

前瞻使得这是一个相当低效的正则表达式,因为每次匹配都需要再次检查后续文本,直到下一个end