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

来源:3-3 python正则表达式语法(三)

SuperDi

2017-07-17 18:13

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

写回答 关注

2回答

  • 慕粉0856303723
    2018-05-14 20:04:46

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

    Dianep...

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

    2019-03-01 14:45:29

    共 1 条回复 >

  • 养猫人
    2017-07-17 19:52:50

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

python正则表达式

如何使用正则处理文本,带你对python正则有个全面了解

80575 学习 · 174 问题

查看课程

相似问题