正则表达式:使用先行断言检查字符是否存在最多一定次数

时间:2010-03-05 00:13:38

标签: python regex

如何使用超前断言来确定字符串中某个字符最多是否存在一定次数。

例如,假设我想检查一个至少包含一个字符的字符串,以确保它最多包含“@”2次。提前致谢。如果重要的话,使用python。

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

使用否定先行断言,您可以确保@不会出现三次:

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

答案 2 :(得分:0)

我相信Mark的答案不会很有效,因为你需要在其他时候排除@匹配。试试这个:

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

编辑: 马克确定了他的答案,我们现在应该是一样的。另外,修复了。