re.split()给出列表中的空元素

时间:2013-08-08 10:56:30

标签: python regex

请帮助解决此案例:

m = re.split('([A-Z][a-z]+)', 'PeopleRobots')
print (m)

结果:

['', 'People', '', 'Robots', '']

为什么列表中有空元素?

1 个答案:

答案 0 :(得分:8)

根据re.split documentation

  

如果分隔符中有捕获组,则匹配   字符串的开头,结果将以空字符串开头。该   同样适用于字符串的结尾

如果您想获得PeopleRobots,请使用re.findall

>>> re.findall('([A-Z][a-z]+)', 'PeopleRobots')
['People', 'Robots']

您可以省略分组:

>>> re.findall('[A-Z][a-z]+', 'PeopleRobots')
['People', 'Robots']