换句话说,“只匹配2位数或4位数”。标题中的表达式工作正常,但我想知道是否使用我不知道的运算符看起来更干净,因为我只是学习正则表达式。
答案 0 :(得分:4)
你喜欢
([0-9]{2}(?:[0-9]{2})?)
更好?我不确定这是否更简单,但不同。
但是如果你想要精确匹配2或4位数,你需要anchor你的表达式。否则,您将获得所有内容的部分匹配,其中至少包含2位数字。像这样的东西
^([0-9]{2}|[0-9]{4})$
或者
\b([0-9]{2}|[0-9]{4})\b
请参阅此here on Regexr
答案 1 :(得分:4)
这个特殊的正则表达式可以改写为
(\d{2}){1,2}
或甚至(对于2和4的小值)
\d\d(\d\d)?
答案 2 :(得分:1)
用另一种形式改写,是的。简化,没有。
答案 3 :(得分:1)
至少你可以做到这一点
(\d{2}|\d{4})