please help with this case:
m = re.split('([A-Z][a-z]+)', 'PeopleRobots') print (m)
Result:
['', 'People', '', 'Robots', '']
Why does the list have empty elements?
According to re.split documentation:
If there are capturing groups in the separator and it matches at the start of the string, the result will start with an empty string. The same holds for the end of the string:
If you want to get People and Robots, use re.findall:
People
Robots
>>> re.findall('([A-Z][a-z]+)', 'PeopleRobots') ['People', 'Robots']
You can omit grouping:
>>> re.findall('[A-Z][a-z]+', 'PeopleRobots') ['People', 'Robots']
2.1m questions
2.1m answers
60 comments
57.0k users