6

请帮助解决这个问题:

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

结果:

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

为什么列表有空元素?

4

1 回答 1

10

根据re.split 文档

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

如果要获取Peopleand Robots,请使用re.findall

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

您可以省略分组:

>>> re.findall('[A-Z][a-z]+', 'PeopleRobots')
['People', 'Robots']
于 2013-08-08T11:00:38.890 回答