Regex 仅适用于正整数或负整数的正则表达式,不带查找框

Regex 仅适用于正整数或负整数的正则表达式,不带查找框,regex,Regex,我只想匹配整数。没有小数和前导0。不允许环顾四周。我的最佳解决方案是^\d+$,但它与上的0001匹配 下面是一些测试用例 1 -1 +1 A1 )1 0.1 0001 1,000 1.1 0 这就是结果 1 #true -1 #true +1 #true A1 #false )1 #false 0.1 #false 0001 #false 1,000 #false 1.1 #false 0 #true 编辑 我还添加了条件以匹配您可以使用的0 ^([+-]?[1-9][0-9]*

我只想匹配整数。没有小数和前导0。不允许环顾四周。我的最佳解决方案是
^\d+$
,但它与上的
0001
匹配

下面是一些测试用例

1 
-1 
+1 
A1
)1 
0.1 
0001
1,000
1.1
0
这就是结果

1 #true
-1 #true
+1 #true
A1 #false
)1 #false
0.1 #false
0001 #false
1,000 #false
1.1 #false
0 #true
编辑 我还添加了条件以匹配您可以使用的
0

^([+-]?[1-9][0-9]*|0)$
请参阅和:

详情:

  • ^
    -字符串的开头
  • -组的开始:
    • [+-]?
      -a
      -
      +
      ,可选
    • [1-9]
      -从
      1
      9
    • [0-9]*
      -任何零位或更多位
  • |
    -或
    • 0
      -零
  • $
    -字符串结束

使用
^[+-]?[1-9]\d*$
^[+-]?[1-9][0-9]*$
环顾四周是不允许的。你能解释一下为什么吗?我在Rust中使用的正则表达式库说,“不允许环顾四周”。@NicolasI刚刚添加了条件以匹配0。@Alex编辑了答案。你的意思是“^[+-]?[1-9]\d*.^0$”而不是“^[+-]?[1-9]\d*| 0$@Alex请查看我发布的内容:
^([+-]?[1-9][0-9]*| 0)$