获取具有非前导零的数字(包括“ - ”)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取具有非前导零的数字(包括“ - ”)相关的知识,希望对你有一定的参考价值。

我想匹配包括“ - ”的数字与不带前导的零和没有“ - ”的普通数字。因此我想使用正则表达式。

正则表达式 应该匹配0 1 2 3 123 2-3 22-33 和 不应该匹配0123-123 01234。 以下正则表达式几乎起作用:

(0|[1-9][0-9]*-?[0-9]*)

数字0 1 2 3 123 2-3 22-33和01234正确匹配,但0123-123不匹配:部分匹配。 https://regex101.com/r/0Po3Ed/1

答案

您可以在正则表达式中使用负面的lookbehind:

(?<!-)(?:0|[1-9][0-9]*(?:-[0-9]+)?)

Updated RegEx Demo

如果你在数字之前有(?<!-),那么-是负面的表情背叛表达,如果你的比赛失败了。

以上是关于获取具有非前导零的数字(包括“ - ”)的主要内容,如果未能解决你的问题,请参考以下文章

填充数字格式的时间表达式,具有带前导零的可变分隔符

使用vba在excel中复制带有前导零的数字文本

使用iis 7重写/重定向去除前导零的数字并转发

JavaScript 中前导零的数字

格式化包含带前导零的小数点的数字

如何在 JavaScript 中输出带有前导零的数字? [复制]