问题与启用通配符(准正则表达式)的单词查找和替换有关。
根据这个微软页面:
- ? 代表任意单个字符(如正则表达式中的 .)
- {n,m} 表示 n 和 m 之间定义的字符数。
但是,我得到了以下结果
源字符串:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
查找内容:
b{1,2}a
结果:abbbbb工商管理硕士啊啊啊
(预期的)
查找内容:
??a
结果:abbbbb工商管理硕士啊啊啊
(预期的)
找到什么:
?{1,2}a
结果:哎呀哎呀啊啊啊
最后一个到底发生了什么?它似乎表现得像*
答案1
从您提供的网页:
{n,m} - 前一个出现的次数从 n 到 m特点或者表达
和
()-表达
和
? -任意单个字符,包括空格和标点符号
因此我认为“?”在这种情况下不被视为“字符”(因为“?”是“任何单个字符”),但是当你用括号将其括起来时它就变成了表达式并且它可以起作用。
因此这里正确的正则表达式是: (?){1,2}a