我需要以下正则表达式的帮助:
(0 ?)([1-8] ?){1}(\d ?){9}|(\d ?){10}
我创建的正则表达式适用于除第三个条件之外的大多数情况,即第二个数字应仅包含1-8个数字。 非常感谢任何帮助
答案 0 :(得分:2)
以下是您的正则表达式(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}
答案 1 :(得分:1)
您可以使用:
^0 ?[1-8] ?(?:[0-9] ?){8,9}$
我使用了锚点^
和$
来确保没有前导或尾随数字。
答案 2 :(得分:0)
试试这个:
^(0\s?)([1-8]\s?)(\d\s?){8,9}$