正则表达式,凭什么^[0-9]*[1-9][0-9]*$就匹配正整数了?

时间:2021-03-25 05:50:58
如题,就是我原则怎么回事不明白。这些字符我也懂什么意思。但是合起来就不知道怎么个匹配原理了。请各们老师指导一二。万分感谢。

12 个解决方案

#1


自己顶个先。

#2


你去看看http://blog.csdn.net/lxcnn/archive/2009/06/14/4268033.aspx 
lxcnn老师讲的很清楚

#3


^[0-9]*表示开头为任意个数字字符,[1-9]表示字符串中间必须有一位数字字符不是0,[0-9]*$表示结尾为任意个数字字符。

#4


^[1-9][0-9]*$才是匹配正整数的吧

#5


正整数可以已零开头,而且正整数不包括0,所以^[0-9]*表示开头为任意个数字字符,[1-9]表示字符串中间必须有一位数字字符不是0,[0-9]*$表示结尾为任意个数字字符。

#6


我的理解错了?
0000000000000001也算正整数?

#7


0000000000000001 parseInt就是正整数了。

#8


parseInt什么都是整数吧楼上

#9


说的是正整数,0000就不是正整数了。

#10


引用 3 楼 lunbing 的回复:
^[0-9]*表示开头为任意个数字字符,[1-9]表示字符串中间必须有一位数字字符不是0,[0-9]*$表示结尾为任意个数字字符。

正解

#11


可以简化成这样:0*[1-9]\\d*

#12


^[0-9]*[1-9][0-9]*$匹配的是可以有任意多个前导0的非零正整数

#1


自己顶个先。

#2


你去看看http://blog.csdn.net/lxcnn/archive/2009/06/14/4268033.aspx 
lxcnn老师讲的很清楚

#3


^[0-9]*表示开头为任意个数字字符,[1-9]表示字符串中间必须有一位数字字符不是0,[0-9]*$表示结尾为任意个数字字符。

#4


^[1-9][0-9]*$才是匹配正整数的吧

#5


正整数可以已零开头,而且正整数不包括0,所以^[0-9]*表示开头为任意个数字字符,[1-9]表示字符串中间必须有一位数字字符不是0,[0-9]*$表示结尾为任意个数字字符。

#6


我的理解错了?
0000000000000001也算正整数?

#7


0000000000000001 parseInt就是正整数了。

#8


parseInt什么都是整数吧楼上

#9


说的是正整数,0000就不是正整数了。

#10


引用 3 楼 lunbing 的回复:
^[0-9]*表示开头为任意个数字字符,[1-9]表示字符串中间必须有一位数字字符不是0,[0-9]*$表示结尾为任意个数字字符。

正解

#11


可以简化成这样:0*[1-9]\\d*

#12


^[0-9]*[1-9][0-9]*$匹配的是可以有任意多个前导0的非零正整数