我需要在下面的正则表达式上得到帮助:
(0 ?)([1-8] ?){1}(\d ?){9}|(\d ?){10}除了第三个条件之外,我为大多数场景创建的正则表达式,即第二个数字应该只包含1-8位数。任何帮助都非常感谢
发布于 2014-03-03 16:18:26
试试这个:
^(0\s?)([1-8]\s?)(\d\s?){8,9}$发布于 2014-03-03 16:23:27
下面是regex (0 ?)([1-8] ?){1}(\d ?){9}|(\d ?){10}当前所做的工作:

它还试图匹配11或12位数,而不是10或11位数。
您需要做的是改变它的方式之一:
|周围添加一个组以限制其范围:(0 ?)([1-8] ?){1}(?:(\d ?){8}|(\d ?){9})

(0 ?)([1-8] ?){1}(\d ?){8,9}

发布于 2014-03-03 16:16:39
你可以用这个:
^0 ?[1-8] ?(?:[0-9] ?){8,9}$我使用锚^和$来确保没有前导或尾随数字。
https://stackoverflow.com/questions/22151645
复制相似问题