假设我需要匹配一个连续出现 3 或 6 次的模式。我能得到的最接近的是\d{3,6} 之类的东西,但这并不能完全满足我的需要。
“123”应该匹配
“123456”应该匹配
“1234”不应匹配
最佳答案
^(\d{3}|\d{6})$
你必须有某种终止符,否则 \d{3}
将匹配 1234。这就是为什么我把 ^ 和 $ 放在上面。一种替代方法是使用环视:
(?<!\d)(\d{3}|\d{6})(?!\d)
以确保其前面或后面没有数字(在本例中)。更多内容请参见Lookahead and Lookbehind Zero-Width Assertions .
关于regex - 正则表达式: match x times OR y times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/866538/