Regex 仅适用于正整数或负整数的正则表达式,不带查找框
我只想匹配整数。没有小数和前导0。不允许环顾四周。我的最佳解决方案是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]*
^\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)$