jez*_*ael 18 python regex string list
我有分隔符的字符串列表A
和B
:
L = ['sgfgfqds A aaa','sderas B ffff','eeee','sdsdfd A rrr']
Run Code Online (Sandbox Code Playgroud)
并需要:
L1 = [['aaa'], ['ffff'], ['eeee'], ['rrr']]
Run Code Online (Sandbox Code Playgroud)
我试过用:
L1 = [re.findall(r'(?<=A)(.*)$', inputtext) for inputtext in L]
print (L1)
Run Code Online (Sandbox Code Playgroud)
但是,它返回以下内容:
[[' aaa'], [], [], [' rrr']]
Run Code Online (Sandbox Code Playgroud)
如何获得所需的输出?
wil*_*elm 21
你可以用它re.split
来破坏你的字符串'A'
或'B'
:
>>> L1 = [re.split(r'[AB] *', inputtext)[-1] for inputtext in L]
>>> L1
['aaa', 'ffff', 'eeee', 'rrr']
Run Code Online (Sandbox Code Playgroud)
替代建议没有regex
.
[[i] for i in ' '.join(L).split(' ') if i.count(i[0]) == len(i) and len(i) > 1]
Run Code Online (Sandbox Code Playgroud)
结果
[['aaa'], ['ffff'], ['eeee'], ['rrr']]
Run Code Online (Sandbox Code Playgroud)
您可以使用split
返回列表的事实,即使它找不到分隔符.
L1 = [[x.split(' A ')[-1].split(' B ')[-1]] for x in L]
Run Code Online (Sandbox Code Playgroud)