Say I have a string
s containing letters and two delimiters
2. I want to split the string in the following way:
- if a substring
- otherwise, return each character
s = 'ab1cd2efg1hij2k', the expected output is
['a', 'b', 'cd', 'e', 'f', 'g', 'hij', 'k'].
I tried to use regular expressions:
import re s = 'ab1cd2efg1hij2k' re.findall( r'(1([a-z]+)2|[a-z])', s ) [('a', ''), ('b', ''), ('1cd2', 'cd'), ('e', ''), ('f', ''), ('g', ''), ('1hij2', 'hij'), ('k', '')]
From there i can do
[ x[x[-1]!=''] for x in re.findall( r'(1([a-z]+)2|[a-z])', s ) ] to get my answer, but I still don't understand the output. The documentation says that
findall returns a list of tuples if the pattern has more than one group. However, my pattern only contains one group. Any explanation is welcome.