I have list of strings with separators A
and B
:
L = ['sgfgfqds A aaa','sderas B ffff','eeee','sdsdfd A rrr']
and need:
L1 = [['aaa'], ['ffff'], ['eeee'], ['rrr']]
I tried using:
L1 = [re.findall(r'(?<=A)(.*)$', inputtext) for inputtext in L]
print (L1)
but, it returns the following:
[[' aaa'], [], [], [' rrr']]
How can I get the desired output?
Use the String. split() method to split a string with multiple separators, e.g. str. split(/[-_]+/) . The split method can be passed a regular expression containing multiple characters to split the string with multiple separators.
There are multiple ways you can split a string or strings of multiple delimiters in python. The most and easy approach is to use the split() method, however, it is meant to handle simple cases.
You can use re.split
to break your strings on either 'A'
or 'B'
:
>>> L1 = [re.split(r'[AB] *', inputtext)[-1] for inputtext in L]
>>> L1
['aaa', 'ffff', 'eeee', 'rrr']
You can use the fact that split
returns a list even if it doesn't find the separator.
L1 = [[x.split(' A ')[-1].split(' B ')[-1]] for x in L]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With