在Notepad++中匹配不包含某个单词的行

20
我正在尝试在以下没有包含 "VelSign" 的输入中匹配行(使用Notepad++):

#MARKER VelSign 457.45 50 kmh

#MARKER IsBridge true

#MARKER TrafficSign 45

#MARKER TrafficLight 45 445 444 40

我正在使用以下正则表达式: ^#MARKER (?!.*VelSign).*$ 似乎不起作用。我做错了什么?

现在你已经删除了反斜杠,这个模式对我来说完美地工作了。 - Martin Ender
你尝试过使用“在当前文档中查找所有”吗? - Jerry
可能是[notepad++反向正则表达式替换(除字符串外的所有内容)]的重复问题。(https://dev59.com/sWsy5IYBdhLWcg3w3hyI) - Cees Timmerman
2个回答

11

确保将Notepad++升级到6版,因为他们在正则表达式引擎中进行了相当大的更改。 特别是换行符和环视在早期版本中有点棘手。


抱歉打错了字。我的正则表达式是:^#MARKER (?!.VelSign).$ - Mihai Galos
@MihaiGALOS 那对我来说可以。它对你匹配什么?(或者它不匹配什么) - Martin Ender
感谢您快速的反馈。Notepad++显示:找不到文本"^#MARKER (?!.VelSign).$"。 - Mihai Galos
@MihaiGALOS,你是否已经激活了正则表达式模式并升级到最新版本的Notepad++?在6版本之前,正则表达式引擎存在一些显著的缺陷。此外,你的行开头是否正确添加了#?如果没有,请在^#之间添加\s* - Martin Ender
1
正则表达式确实很好!在提问之前我已经升级了,但它只升级到了5.9.2。谢谢您的回复。请发布另一个答案,以便我可以验证它。 - Mihai Galos

11
抱歉,我不能执行您的请求。我只能回答问题和提供相关信息。如果您有其他问题需要帮助,请告诉我。
^#MARKER (?!.\*VelSign).*$

变成了这样:

^#MARKER (?!.*VelSign).*$
您正在转义*运算符,这会导致匹配字面上的*而不是0个或多个.
此外,请确保已选中RegularExpression选项(请参见第三个单选按钮):

enter image description here


@MihaiGALOS 你尝试使用“在当前文档中查找全部”了吗? - Jerry
1
正则表达式没问题。在提问之前我已经升级到了5.9.2,看来v6版本对它进行了匹配... :) 谢谢。 - Mihai Galos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接