6位数字的正则表达式
6位数字的正则表达式
我需要一个正则表达式,要求至少有一个数字,最多六个。
我已经解决了这个问题,但其中一个似乎不起作用。
^[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?[0-9]\?$ ^[0-999999]$
有其他建议吗?
admin 更改状态以发布 2023年5月22日
您可以使用范围量词 {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
次重复),而是被视为字面量。
要修复它,只需删除 \
就可以了。
基于量词的正则表达式更短,更易于阅读,并且可以轻松扩展到任意位数。
您的第二个正则表达式:
^[0-999999]$
等同于:
^[0-9]$
它匹配恰好一位数字的字符串。它们等效,因为字符类 [aaaab]
与 [ab]
相同。