为了账号安全,请及时绑定邮箱和手机立即绑定

为什么re.match(r'[1-9]?\d$', '09')匹配不到

为什么re.match(r'[1-9]?\d$', '09')匹配不到??匹配结果应该是0啊

正在回答

2 回答

[1-9]?\d$表达式表示,1-9的数字0个或1个,且以数字结尾,所以结果应是9

0 回复 有任何疑惑可以回复我~
#1

Dianepure_

这楼回答有误。楼上回答是对的。 [1-9]?\d$ 当第一个字符为0时,能匹配到1个字符; 当第一个字符为1-9时,能匹配到2个字符 而输入为 '09',输入的第一个字符是0,所以只能匹配到1个字符,即'0',所以会匹配不到
2019-03-01 回复 有任何疑惑可以回复我~

我刚看的时候也有这个问题,我是这样理解的,因为表达式中的$决定了它前面的数字(即0)该是被匹配串的最后一位,与事实相悖,所以匹配不到

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么re.match(r'[1-9]?\d$', '09')匹配不到

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信