我需要用下面的正则表达式的帮助:正则表达式不工作的expcted
(0 ?)([1-8] ?){1}(\d ?){9}|(\d ?){10}
- 正则表达式应该匹配或者或11位
- 的第一位应为0
- 第二位数字应该包含从1 - 8位数字 only
- 所有数字可以在之间有空格,例如, 0 1 2 7 4 3 3 3 4 4 4
- 数字可以没有空格,例如01274333444
我创建的正则表达式适用于除第三个条件之外的大多数场景,即第二个数字只能包含1-8个数字。 任何帮助非常感谢
我需要用下面的正则表达式的帮助:正则表达式不工作的expcted
(0 ?)([1-8] ?){1}(\d ?){9}|(\d ?){10}
我创建的正则表达式适用于除第三个条件之外的大多数场景,即第二个数字只能包含1-8个数字。 任何帮助非常感谢
您可以使用此:
^0 ?[1-8] ?(?:[0-9] ?){8,9}$
我用锚^
和$
,以确保没有开头或结尾的数字。
这是你的正则表达式(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}
非常感谢你这是非常好的解释。我无法在这个阶段投票,否则会投你的答案:) – ConfusedCoder
您的正则表达式匹配11或12位数字。 – devnull
有一个非常酷的在线工具来测试正则表达式:http://regex101.com/你可能想试试看。您可以输入数字并查看它们何时匹配。它也解释了你正在选择的东西。 – helderdarocha