换句话说,“只匹配 2 位或 4 位”。标题中的表达式效果很好,但我想知道是否有一种更简洁的方式使用我不知道的运算符,因为我只是在学习正则表达式。
问问题
5685 次
4 回答
4
你喜欢
([0-9]{2}(?:[0-9]{2})?)
更好的?我不确定这是否更简单,但不同。
但是如果你想精确匹配 2 或 4 位数字,你需要锚定你的表达式。否则,您将在所有内容上获得部分匹配,其中至少包含 2 位数字。像这样的东西
^([0-9]{2}|[0-9]{4})$
或这个
\b([0-9]{2}|[0-9]{4})\b
在 Regexr 上看到这里
于 2012-11-22T10:11:56.027 回答
4
这个特定的正则表达式可以重写为
(\d{2}){1,2}
甚至(对于 2 和 4 的小值)
\d\d(\d\d)?
于 2012-11-22T10:15:19.843 回答
1
改写成另一种形式,是的。简化,没有。
于 2012-11-22T10:09:42.977 回答
1
最多你可以做到这一点
(\d{2}|\d{4})
于 2012-11-22T10:10:23.600 回答