问答详情
源自:3-2 python正则表达式语法(二)

122行和123行字符串只匹配了第一个

In [120]: ma = re.match(r'[A-Z][a-z]*','A')


In [121]: ma.group()

Out[121]: 'A'


In [122]: ma = re.match(r'[A-Z][a-z]*','JFjfdFK')


In [123]: ma.group()

Out[123]: 'J'


In [124]: ma.groups()

Out[124]: ()


提问者:橙子mm007 2018-08-24 14:31

个回答

  • qq_吥倣棄_0
    2018-12-07 15:41:45

    *号表示紧跟在它前面的单元应匹配零次或多次,也就是说在单元[a-z]中匹配零次或者多次,而[A-Z]中只匹配以此,你输入的字符串连续两个大写字母就只能匹配第一个,后面的无法匹配。

  • 橙子mm007
    2018-08-24 14:35:46

    经验证,只有第一个字母是大写,后面全部是小写才行,幸好注意听了老师最后一句话


    In [131]: ma = re.match(r'[A-Z][a-z]*','AFjfdFK')


    In [132]: ma.group()

    Out[132]: 'A'


    In [133]: ma = re.match(r'[A-Z][a-z]*','Akffaf')


    In [134]: ma.group()

    Out[134]: 'Akffaf'


    In [135]: ma = re.match(r'[A-Z][a-z]*','Dkffaf')


    In [136]: ma.group()

    Out[136]: 'Dkffaf'