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']
为什么第一种匹配会多出几个'',而且结尾会比中间的多一个‘’?是不是字符串结束还有一个结束符?
ma = pa.findall(r'')
In [67]: ma = pa.findall(r'')
In [68]: print ma
['']
In [69]: ma = pa.findall(r' ')
In [70]: print ma
['', '']
看上面应该能明白了吧
*是可以0次的,‘’就代表找到0次