6位正则表达式

我需要一个正则表达式,至少需要一个数字和六个最大。

我已经解决了这个问题,但它们似乎都不起作用。

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


^[0-999999]$

还有别的建议吗?

216727 次浏览

^[0-9]{1,6}$应该可以。我对 VB.NET 的了解还不足以知道它们是否相同。

例如,看看 维基百科

您可以使用范围量词 {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重复) ,而是按照字面意义处理。

要修复它只需删除 \和你在那里。

看看这个。

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

你的第二个正则表达式:

^[0-999999]$

等同于:

^[0-9]$

它们是等价的,因为字符类 [aaaab][ab]相同。

  ^\d{1,6}$

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

你可以试试

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

应该能行。

\b\d{1,6}\b

解释

\b    # word boundary - start
\d    # any digits between 0 to 9 (inclusive)
{1,6} # length - min 1 digit or max 6 digits
\b    # word boundary - end
/^[0-9][0-9][0-9][0-9]$/

只输入4位数字

^[a-zA-Z0-9]{1,6}$

正则表达式6位数字和字母的角