正则表达式:使用前瞻断言检查字符出现次数不超过某个值

10 投票
3 回答
1657 浏览
提问于 2025-04-15 20:02

我想知道怎么用“前瞻断言”来判断一个字符串里某个字符出现的次数最多是多少。

比如,我想检查一个字符串,确保它至少有一个字符,并且里面的“@”符号最多出现两次。谢谢!如果用Python来做就更好了。

3 个回答

0

通过使用负向前瞻断言,你可以确保@这个符号不会出现三次:

(?!.*@.*@.*@.*).*
0

我觉得Mark的回答可能不太适用,因为你需要在其他情况下排除掉@符号的匹配。试试这个:

^(?=(([^@]*@){0,2}[^@]*$))

补充说明:Mark已经修正了他的回答,我们的答案现在应该是一样的了。也进行了修正。

5

有很多方法可以做到这一点,比如:

/^(?=([^@]*@){,2}[^@]*$)./

撰写回答