正则表达式为2或5位数

时间:2012-10-26 15:40:09

标签: regex

如何编写只能匹配2位或5位数字的正则表达式?

到目前为止,我有这个,但它匹配2到5位数的任何数字。

           ^\d{2,5}$

2 个答案:

答案 0 :(得分:13)

使用3个可选数字:

^\d{2}\d{3}?$

请注意,某些正则表达式引擎会在任何重复修饰符(甚至是固定修饰符)后将?解释为ungreedy修饰符,这似乎会导致两位数的问题。如果您遇到这种情况,请使用:

^\d{2}(?:\d{3})?$

您可以在this great tutorial中阅读一些正则表达式基础知识。

顺便说一句,上述内容与使用替换的内容实际上相当(但略微更有效):

^(?:\d{2}|\d{5})$

(仅为了向您展示另一个正则表达式概念。)

答案 1 :(得分:0)

/^\A\d{2}\z$|^\A\d{5}\z$/

A表示输入开始,z表示输入结束。

适用于PHP和JAVA;不确定js或perl。