有人可以告诉我如何在正则表达式中匹配4位数或吗?我一直在使用RegexBuddy,到目前为止我已经提出了这个,但是帮助文本是说'或匹配下面的正则表达式2 - 整个匹配尝试失败,如果这个无法匹配'关于在管道之后的模式。
我希望两者中的任何一个能够提供积极的匹配。
^\d{4}|$
答案 0 :(得分:11)
无论是4位还是全无:
^(?:\d{4}|)$
这与你想要做的最接近。
我会选择以下稍微更短的一个:
^(?:\d{4})?$
^\d{4}|$
正则表达式意味着:
^\d{4}
或$
第一个将匹配任何以4位数开头的字符串,而第二个将报告所有内容的匹配(它匹配字符串的结尾,并且由于未指定字符,因此它将匹配所有字符串的结尾)。
当您使用某个群组时,您将获得:
^(?:\d{4})$
或^(?:)$
(请注意,OR运算符的'限制'已更改),这相当于^\d{4}$
或{{1} }
答案 1 :(得分:2)
我认为你的方法很合理。您确实需要记住运算符优先级,并使用
^(\d{4}|)$
或
^\d{4}$|^$
答案 2 :(得分:1)
我不认为它是否需要 OR
^(\d{4})?$