正则表达式:使用前瞻断言检查字符出现次数不超过某个值
我想知道怎么用“前瞻断言”来判断一个字符串里某个字符出现的次数最多是多少。
比如,我想检查一个字符串,确保它至少有一个字符,并且里面的“@”符号最多出现两次。谢谢!如果用Python来做就更好了。
3 个回答
0
通过使用负向前瞻断言,你可以确保@这个符号不会出现三次:
(?!.*@.*@.*@.*).*
0
我觉得Mark的回答可能不太适用,因为你需要在其他情况下排除掉@符号的匹配。试试这个:
^(?=(([^@]*@){0,2}[^@]*$))
补充说明:Mark已经修正了他的回答,我们的答案现在应该是一样的了。也进行了修正。
5
有很多方法可以做到这一点,比如:
/^(?=([^@]*@){,2}[^@]*$)./