如何将9位或14位长的数字与正则表达式匹配?

时间:2009-12-28 19:52:22

标签: regex

如果键入9或14位数,我需要通过Regex表达式进行检查。

表达式\d{9}|\d{14}似乎行不通,出了什么问题?

5 个答案:

答案 0 :(得分:14)

这个正则表达式应该可行。

^(\d{9}|\d{14})$

您可以发布您正在使用的代码段并告诉我们您使用的是哪种语言? 如果你正在使用正则表达式,那么你有一个字符串,我确信你的语言可以计算字符串长度。

编辑:
正如Rubens Farias在评论中指出的那样,^ ...是必需的,因为你的正则表达式会匹配任何超过9位数的数字,因为这个数字有一个长度为9位的子字符串。

无论如何,请检查您是否可以使用语言的字符串方法/功能

答案 1 :(得分:7)

您可以使用:

^(?:\d{9}|\d{14})$

说明:

^       - Start anchor
(?:     - Start of non-capturing group      
 \d{9}  - 9 digits
 |      - alternation
 \d{14} - 14 digits
)       - close of the group.
$       - End anchor

或者你可以这样做:

^\d{9}(?:\d{5})?$

匹配9个数字后跟可选的5数字。

答案 2 :(得分:0)

它取决于您使用的正则表达式语法的变体,是否支持length {n-m}运算符。你在用哪一个?

答案 3 :(得分:-1)

(\d{9}|\d{14}) should work

答案 4 :(得分:-3)

使用长度检查是否正则表达式不计算