如何编写只能匹配2位或5位数字的正则表达式?
到目前为止,我有这个,但它匹配2到5位数的任何数字。
^\d{2,5}$
答案 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。