Federico A. Ramponi Federico A. Ramponi - 3 years ago 608
Python Question

Python: Split a string at uppercase letters

What is the pythonic way to split a string before the occurrences of a given set of characters?

For example, I want to split


at any occurrence of an uppercase letter (possibly except the first), and obtain
['The', 'Long', 'And', 'Winding', 'Road']

Edit: It should also split single occurrences, i.e.
I'd like to obtain
['A', 'B', 'C']

Answer Source

Unfortunately it's not possible to split on a zero-width match in Python. But you can use re.findall instead:

>>> import re
>>> re.findall('[A-Z][^A-Z]*', 'TheLongAndWindingRoad')
['The', 'Long', 'And', 'Winding', 'Road']
>>> re.findall('[A-Z][^A-Z]*', 'ABC')
['A', 'B', 'C']
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download