Notepad++ 显式量词符号注释

6
我一直在使用Notepad++正则表达式引擎,但有些我无法实现的地方,那就是显式量词符号。我在这里看到了其他一些帖子,使用了以下语法:(expr){1,2}。但是,当我在一个简单的测试中使用它,例如k{1,1},其中要搜索的文本是k时,没有匹配项。我尝试了很多语法:{1,},{1}等等。我错过了什么?请原谅我的糟糕英语,并感谢您的回答!
2个回答

21

从版本6.0开始,Notepad++支持PCRE (source)。在这些版本中,量词符号将按预期工作。

Notepad++ 5.9.8及更低版本的正则表达式引擎不支持量词符号 (source)。

但是,您可以使用以下量词符号:

  • k*等同于k{0,}
  • k+等同于k{1,}
  • k?等同于k{0,1}

如果您需要其他量词符号,可以组合以上方法。

示例:

  • kkk+模拟了k{3,}
  • kkkk?k?模拟了k{3,5}

谢谢你的回答!虽然有点令人失望,因为这让我构建了很长的表达式,但至少现在我确定了 :) - igelineau
Notepad++基于Scintilla,它使用老派的POSIX正则表达式,这些量词在那里不起作用。 - NullUserException
@Dennis 不用在意,我刚才被我正在处理的一个复杂正则表达式搞糊涂了。 - Techrocket9

1

Notepad++ 的正则表达式系统似乎不支持该功能。它们支持 k+k*


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