正则笔记:括号后面的问号
正则笔记:括号后面的问号
问题
群里有小伙伴发了一道正则的题目。
解决
解法如下:
^([1-9][0-9]*)+(\.[0-9]{1,2})$
追问
问题来了,$ 前面要不要加问号呢?
改为如下:
^([1-9][0-9]*)+(\.[0-9]{1,2})?$
可以看出这个正则兼容了整数。
从最终用户的角度来讲,加了 问号(?)更加友好。
解决过程的花絮
-
开始用了
^([1-9]|[0-9]{0,})(.[0-9]{1,2})?$
点(.)没有转义,变成了 Any Char,测试0w1
也通过了,正则失败。
-
改为
^([1-9]|[0-9]{0,})(\.[0-9]{1,2})?$
,看起来是没问题,但是测试 00.11 时通过了,这个正则不对。
-
最终改为
^([1-9][0-9]*)+(\.[0-9]{1,2})$
,再友好点就加上问号^([1-9][0-9]*)+(\.[0-9]{1,2})?$
所有文章为原创,如非授权,请勿转载。
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu
我们要多多支持有创造能力的人,因为那是我们所有人的希望。
同时我们也希望成为有创造能力的人,我们支持开源,同时也支持正版。
🎈数码荔技正版软件商店🎈
【正版】微软 Office 365
【正版】老牌文件对比工具 Beyond Compare
【正版】JetBrains Idea Java IDE
不断学习,慢慢进步,做时间的朋友。
注意力 > 时间 > 金钱。 -- 建伟 F4nniu