单词查找和替换“?{1,2}”出现意外行为。匹配长字符串

单词查找和替换“?{1,2}”出现意外行为。匹配长字符串

问题与启用通配符(准正则表达式)的单词查找和替换有关。

根据这个微软页面

  • ? 代表任意单个字符(如正则表达式中的 .)
  • {n,m} 表示 n 和 m 之间定义的字符数。

但是,我得到了以下结果

源字符串:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

查找内容:b{1,2}a
结果:abbbbb工商管理硕士啊啊啊
(预期的)

查找内容:??a
结果:abbbbb工商管理硕士啊啊啊
(预期的)

找到什么:?{1,2}a
结果:哎呀哎呀啊啊啊

最后一个到底发生了什么?它似乎表现得像*

答案1

从您提供的网页:

{n,m} - 前一个出现的次数从 n 到 m特点或者表达

()-表达

? -任意单个字符,包括空格和标点符号

因此我认为“?”在这种情况下不被视为“字符”(因为“?”是“任何单个字符”),但是当你用括号将其括起来时它就变成了表达式并且它可以起作用。

因此这里正确的正则表达式是: (?){1,2}a

相关内容