正则表达式匹配未知长度的模式 0123456789

Regex to match the pattern 0123456789 with unknown length

我想匹配以下模式:0123456789

问题是我事先不知道字符串的长度,但我知道它是从零开始的。所以可能的字符串是:

我如何才能将其与正则表达式匹配?

谢谢!

编辑:

需要匹配从头到尾的整个字符串

^(0(1(2(3(4(5(6(7(8(9)?)?)?)?)?)?)?)?)?)+$

在这里测试:https://regex101.com/

Rodolfo 的回答很棒。但是,还有一些需要改进的地方!

正则表达式

使用此模式通过的所有测试用例。

^((0(1(2(3(4(5(6(7(8(9)?)?)?)?)?)?)?)?)?)?)+$

Regex Demo

我认为最简单的方法是使用 or 运算符。

(0123456789|012345678|01234567|0123456|012345|01234|0123|012|01|0)+

https://regex101.com/r/mRBPUN/1

看来您只需要对 前一段时间的回答进行简单改编即可:

^(?!.*(?:0[^1]|1[^2]|2[^3]|3[^4]|4[^5]|5[^6]|6[^7]|7[^8]|8[^9]|9[^0])|[1-9])\d*$

主要区别是负先行中的另一个交替....|[1-9] 以防止除前导零之外的任何内容。然后我们将 \d{30} 替换为 \d* 以匹配空字符串。