6位数字的正则表达式

26 浏览
0 Comments

6位数字的正则表达式

我需要一个正则表达式,要求至少有一个数字,最多六个。

我已经解决了这个问题,但其中一个似乎不起作用。

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$
^[0-999999]$

有其他建议吗?

admin 更改状态以发布 2023年5月22日
0
0 Comments

  ^\d{1,6}$

....................

0
0 Comments

您可以使用范围量词 {min,max} 来指定至少 1 位数字,最多 6 位数字,如:

^[0-9]{1,6}$

解释:

^     : Start anchor
[0-9] : Character class to match one of the 10 digits
{1,6} : Range quantifier. Minimum 1 repetition and maximum 6.
$     : End anchor

为什么您的正则表达式不起作用?

您的正则表达式几乎正确:

^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$

由于您在 ? 前面用 \ 转义了它,所以 ? 不再作为正则表达式元字符(表示 01 次重复),而是被视为字面量。

要修复它,只需删除 \ 就可以了。

在 rubular 上查看

基于量词的正则表达式更短,更易于阅读,并且可以轻松扩展到任意位数。

您的第二个正则表达式:

^[0-999999]$

等同于:

^[0-9]$

它匹配恰好一位数字的字符串。它们等效,因为字符类 [aaaab][ab] 相同。

0