请帮助解决这个问题:
m = re.split('([A-Z][a-z]+)', 'PeopleRobots')
print (m)
结果:
['', 'People', '', 'Robots', '']
为什么列表有空元素?
根据re.split 文档:
如果分隔符中有捕获组并且匹配字符串的开头,则结果将以空字符串开头。这同样适用于字符串的结尾:
如果要获取People
and Robots
,请使用re.findall:
>>> re.findall('([A-Z][a-z]+)', 'PeopleRobots')
['People', 'Robots']
您可以省略分组:
>>> re.findall('[A-Z][a-z]+', 'PeopleRobots')
['People', 'Robots']