表示非负整数的最佳正则表达式,除零本身外没有前导零

时间:2016-07-01 01:20:49

标签: regex

我能想到的唯一符合标题的正则表达式是

^(0|[1-9][0-9]*)$

我确信这是一个相对简单的正则表达式,但我觉得有更有效的编写方法,比如使用元字符。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我没有看到任何明显的改进。您可以使用\d代替[0-9]

^(0|[1-9]\d*)$

according to regex101,它不会带来任何速度提升('0'为6步,任何其他匹配为8步)。

如果你只是想展示你的正则表达式排字,那总是这样:

^(0|(?!0)\d+)$

它使用负前瞻'零或(不是零后跟数字)',但实际上更慢(任何非零匹配都是9步)。