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

正则运算问题

import re 

pa = re.compile(r'[a-z]*',re.I)

ma = pa.findall(r'abcefg125xyz777')

print ma

pa = re.compile(r'[a-z]+',re.I)

ma = pa.findall(r'abcefg125xyz777')

print ma


两次输出结果分别是:

# ['abcefg','','','','xyz','','','','']

# ['abcefg','xyz']

为什么第一种匹配会多出几个'',而且结尾会比中间的多一个‘’?是不是字符串结束还有一个结束符?


提问者:慕婉清9024213 2018-08-30 20:16

个回答

  • qq_不抽烟的男人_1
    2019-07-09 16:07:20

    ma = pa.findall(r'')

    In [67]: ma = pa.findall(r'')


    In [68]: print ma

    ['']


    In [69]: ma = pa.findall(r' ')


    In [70]: print ma

    ['', '']


    看上面应该能明白了吧

  • 慕移动1399561
    2018-09-07 17:31:38

    *是可以0次的,‘’就代表找到0次