我有包含分隔符A
和B
的字符串列表:
L = ['sgfgfqds A aaa','sderas B ffff','eeee','sdsdfd A rrr']
并且需要:
L1 = [['aaa'], ['ffff'], ['eeee'], ['rrr']]
我尝试使用:
L1 = [re.findall(r'(?<=A)(.*)$', inputtext) for inputtext in L]
print (L1)
但是,它返回以下内容:
[[' aaa'], [], [], [' rrr']]
如何获得所需的输出?
答案 0 :(得分:21)
您可以使用re.split
打破'A'
或'B'
上的字符串:
>>> L1 = [re.split(r'[AB] *', inputtext)[-1] for inputtext in L]
>>> L1
['aaa', 'ffff', 'eeee', 'rrr']
答案 1 :(得分:6)
没有regex
的替代建议。
[[i] for i in ' '.join(L).split(' ') if i.count(i[0]) == len(i) and len(i) > 1]
<强>结果强>
[['aaa'], ['ffff'], ['eeee'], ['rrr']]
答案 2 :(得分:6)
您可以使用(new \DateTime('2017-02-04 03:52:04'))->format('r');
返回列表的事实,即使它没有找到分隔符。
split
答案 3 :(得分:2)
如果您希望仅使用A或B,则可以使用
>>> L = ['sgfgfqds A aaa','sderas B ffff','eeee','sdsdfd A rrr', 'lasjd X gggggg']
>>> L1 = [re.split(r'[A-Z] *', inputtext)[-1] for inputtext in L]
>>> print(L1)
['aaa', 'ffff', 'eeee', 'rrr', 'gggggg']
答案 4 :(得分:1)
let propDef = Reflect.getOwnPropertyDescriptor(MyClass.prototype, 'a');
propDef.get = function() {
// ...
}