regex - 正则表达式: match x times OR y times

标签 regex

假设我需要匹配一个连续出现 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/

相关文章:

Python正则表达式忽略空行

python - 正则表达式排除破折号和下划线作为最后一个字符

regex - Ansible 正则表达式转义美元字符

python - 正则表达式命名组以开头但不以结尾

ruby - 在 Ruby gsub block (正则表达式)中使用命名捕获组

r - 在 R 中拆分包含多个分隔符的字符串

正则表达式匹配可以跨越多行的字符串

regex - 如何在正则表达式中允许\b 替换 sed 命令

java - 借助正则表达式从文件中读取单个或两个单词

javascript - 正则表达式 : Parse a sentence