我需要一个至少需要一位数且最多六位的正则表达式。
我已经解决了这个问题,但它们似乎都不起作用。
^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$
^[0-999999]$
还有其他建议吗?
答案 0 :(得分:110)
您可以使用范围量词{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]\?$
由于您通过?
前面的\
转义,?
不再充当正则表达式元字符(0
或{{ 1}}重复)但正在按字面意思对待。
要解决此问题,只需删除1
即可。
基于量词的正则表达式更短,更易读,可以轻松扩展到任意数量的数字。
你的第二个正则表达式:
\
相当于:
^[0-999999]$
匹配恰好一位数的字符串。它们是等效的,因为字符类^[0-9]$
与[aaaab]
相同。
答案 1 :(得分:19)
^\d{1,6}$
....................
答案 2 :(得分:9)
你可以尝试
^[0-9]{1,6}$
它应该有用。
答案 3 :(得分:3)
^[0-9]{1,6}$
应该这样做。我不知道VB.NET是否足以知道它是否相同。
例如,请查看Wikipedia。
答案 4 :(得分:0)
\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
答案 5 :(得分:-1)
/^[0-9][0-9][0-9][0-9]$/
仅输入 4 位数字