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

  • 本文关键字:整数 正则表达式 零本 表示 regex
  • 更新时间 :
  • 英文 :


我能想到的唯一满足标题的正则表达式是

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

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

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

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

但是根据regex101,它不会导致任何速度提高('0'的6步,任何其他匹配的8步)。

如果你只是想炫耀你的正则表达式,总是有这个:

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

它使用负向前看' 0或(不是零后面跟着数字)',但这实际上更慢(9步对于任何非零匹配)。