我试图写一个介于10到12位之间的正则表达式。在{0,5}之间将有可选的前导0(零),然后是10-12位之间的数字字符串。无论零的数量(0到5),我想在前导零后10-12位数
示例:
0000012345 should not be passing
0012345678 should not be passing as there are only 8 digits after leading zeros
我试过了:
^(0{0,5}(?=\d{10,12}$)^\d{1,2}?\s?(\d{10})$
答案 0 :(得分:0)
^0{0,5}+\d{0,2}\s?\d{10}$
^^
你没有指定语言。你需要possessive quantifier
。
参见演示。
https://regex101.com/r/m5sOAJ/1
或者如果你的正则表达式不支持possessive quantifiers
^(?=(0{0,5}))\1\d{0,2}\s?\d{10}$
参见演示。
答案 1 :(得分:0)
我认为
^0{0,5}[1-9]\d{9,11}$
应该是你需要的。它强制不将前导零计数为后面的数字之一,要求它为非零。然后可以有9-11个其他数字(包括0)。
如果您需要在任何时候包含可选空间(根据您的RegEx建议),RegEx会增长很多,并且使用一些额外的代码可能更容易。但是,如果您给出了确切的要求,我会相应地编辑答案。