创建允许9或10位数的正则表达式

时间:2013-10-02 13:34:47

标签: regex

我需要正则表达式的帮助

我需要它匹配以50开头的9位或10位数值。

我有:

^[ ]*(50)[0-9]{7}[ ]*$

允许9位数。

如何扩展它以便它还允许10位数?

4 个答案:

答案 0 :(得分:4)

添加范围{7,8}

^[ ]*(50)[0-9]{7,8}[ ]*$

FYI this site描述了您可以在正则表达式中使用的标准量词:

* Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
{n} Match exactly n times
{n,} Match at least n times
{n,m} Match at least n but not more than m times

答案 1 :(得分:3)

尝试使用以下正则表达式:

^[ ]*50\d{7,8}[ ]*$

答案 2 :(得分:2)

这个正则表达式符合你的需要:

^\s*50\d{7,8}\s*$

这将匹配从50开始的所有9或10位数字,在线路之前或之后无限数量的空格。

如果你想匹配所有以50开头的9位或10位数字,无论位置和空格数如何等,那么:

50\d{7,8}

将完全满足您的需求。

答案 3 :(得分:1)

以下是您的需求:(50)\d{7,8}