作业帮 > 数学 > 作业

^(0|[1-9]\\d{0,11})\\.(\\d\\d)$ 这段正则表达式对不对?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/07 11:04:51
^(0|[1-9]\\d{0,11})\\.(\\d\\d)$ 这段正则表达式对不对?
我是想要一个0到11位的数字 ,用正则表达式.
楼上发的那条实在太简单了,糊弄人家楼主么- -!
楼主你的正则意思基本正确,但是有很多语法错误.
1.首先 "^$" 这个俩个符号应该在 "|" 同一侧 意思就是:就你上面的正侧来说应该是,^0$|^[1-9]\\d{0,11})\\.(\\d\\d)$ 这样才能正确
2.楼主你意思可能是11位要带小数的你写的小数是2位对吧,就是11位必须带2为小数的其他的则匹配不到,而且你的正则式验证12位并带2位小数的,为什么呢====》[1-9]\\d{0,11} 你前面已经有个一位数字了后面又加上11位显然是错误的.应该是 [1-9]\\d{0,10} 这样才对吧?
3.显然,楼主的想法是11为数字并必须带2位小数或者0,其他不正确,这个肯定不是你题目想要的0到11位的数字
答案:11位带小数点的:"^0(\\.\\d+)?$|^[1-9]\\d{0,10}(\\.\\d+)?$"
11位不带小数点的:"^0$|^[1-9]\\d{0,10}$"
再问: 11位带小数点的:"^0(\\.\\d+)?$|^[1-9]\\d{0,10}(\\.\\d+)?$" 括号里的 \\.\\d+ 的写法我不太懂,是什么意思啊?
再答: 哦 "\\." 就是小数点 "\\d" 这个你知道就是数字,主要是这个"+"这个意思是"1个或者多个"。和在一起就是"\\.\\d+"一个小数点再加上一个或者多个数字 比如:".893"或者".4300000"、".0"这些都可以。 然后就是 "()?" 这个意思就是"()"里的东西出现一次或者0次 "?"的意思就是一次或者0次,同"+"类似那种 翻译过来就是 (\\.\\d+)? 像".3434" 这种东西出现一次或者0次呗 呵呵