正则表达式问题?

//采用正则表达式的方式来判断一个字符串是否为数字,这种方式判断面比较全//可以判断正负、整数小数//?:0或1个,*:0或多个,+:1或多个BooleanstrResu... //采用正则表达式的方式来判断一个字符串是否为数字,这种方式判断面比较全
//可以判断正负、整数小数
//?:0或1个, *:0或多个, +:1或多个
Boolean strResult = str.matches("-?[0-9]+.*[0-9]*");
我没看明白那个.*指的是是多个小数点吗?
展开
 我来答
microroom
科技发烧友

2020-10-12 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1598万
展开全部

这个正则表达式有点问题。

因为.的意思是匹配任意一个字符,所以.*就是匹配0个或多个任意字符,这显然不对。

要匹配.(小数点),应该用转义\.。而\本身也需要转义\\,所以,要匹配小数点应该用\\.,如果小数点可选,那就应该是\\.?。

所以,应将.*改成\\.?才对。

下图是一个例子(java语言):

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式