Regex 获取带非前导零的数字(包括“-”号)

Regex 获取带非前导零的数字(包括“-”号),regex,Regex,我想匹配数字,包括带非前导零的-和不带-的正常数字。因此,我想使用正则表达式 正则表达式 应该匹配0 1 2 3 123 2-3 22-33和 不应与0123-123 01234匹配。 以下正则表达式几乎可以工作: \b(0|[1-9][0-9]*\-?[0-9]*)\b 数字0 1 2 3 123 2-3 22-33和01234匹配正确,但0123-123不匹配:部分匹配。 您可以在正则表达式中使用负查找: (?<!-)\b(?:0|[1-9][0-9]*(?:-[0-9]+)?)\b

我想匹配数字,包括带非前导零的-和不带-的正常数字。因此,我想使用正则表达式

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

\b(0|[1-9][0-9]*\-?[0-9]*)\b
数字0 1 2 3 123 2-3 22-33和01234匹配正确,但0123-123不匹配:部分匹配。

您可以在正则表达式中使用负查找:

(?<!-)\b(?:0|[1-9][0-9]*(?:-[0-9]+)?)\b
??是负的lookbehind表达式,如果在数字之前有,则会导致匹配失败