如何使用正则表达式在Notepad++中匹配C语言风格的块注释?

5

为了匹配多行注释,我找到了以下正则表达式:

  (?:/\*(?:(?:[^*]|\*(?!/))*)\*/)

这里描述了如何识别注释的正则表达式,虽然不完美(会匹配字符串内的注释),但对我的目的来说足够好用。但是,在Notepad++中它无法工作。我尝试转义不同的字符,但没有更好的结果。

有人知道如何使这个正则表达式在Notepad++中工作吗?


我认为问题在于Notepad ++不会跨多行应用正则表达式,而这正是您根据链接问题所尝试的。 它也不支持前瞻表达式。 使用更好的编辑器 :) - Tim Pietzcker
哦...有什么建议? :) Notepad++很好,因为它轻便且免费。 - Greg
你想要做什么?查找匹配项、替换文本或其他操作? - Oscar Mederos
2个回答

6
当被问及此问题时,正确答案是在Notepad++中无法实现此操作,因为其正则表达式的 flavor 不支持跨多行匹配和 lookahead(这两个在给定的正则表达式中都是必要的)。
然而,如今 Notepad++ 有一个更加强大的正则表达式引擎,自6.0版本以来支持完整的 PCRE 正则表达式。这意味着您在问题中所提供的正则表达式将会直接奏效。因此,我认为现在的正确答案应该是: "打开搜索菜单,输入您的正则表达式,选择正则表达式作为搜索模式并点击搜索"。

如果你需要经常进行这种操作,我强烈推荐EditPad Pro。它的正则表达式支持比我用过的任何其他编辑器都要好得多。 - DaveRandom

4

Notepad++使用Scintilla的正则表达式引擎(根据其在线帮助)。

这个页面说:“在Scintilla中,正则表达式搜索是逐行进行的”,所以不幸的是我认为这是无望的。

-- 编辑 --

进一步挖掘发现这篇notepad++论坛帖子,提供了一些希望。具体来说,它说Notepad++的PythonScript插件支持多行正则表达式。


1
只是想补充一下:自从这篇帖子/问题被添加到该网站以来,Notepad++已经更新以支持这些功能。实际上,我相信正则表达式可能只需要普通的工作就可以了。 - Jasper

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