2015-12-28 117 views
0

我需要用下面的代碼來分割字符串的正則表達式的外觀:Python的分裂由背後

import re 
x = re.split(r"(?<=,)","a,b,c,") 
print x 

輸出看起來是這樣的:

['a,b,c,'] 

我的預期是什麼:

['a,','b,','c,'] 

更新

我使用應答解決方案的形式findAll

什麼我需要的是分割新行(LF,0X0A)

import re 
a = '''aaaa 
bbbb 
cccc 
''' 
x = re.findall(r"[^%s]+%s" % (0x0a,0x0a),a,re.DOTALL) 
print x 

結果是:

[] 

什麼期待的是,有:

['aaaa\n','bbbb\n','cccc\n'] 

回答

2

在python默認re.split函數不會在零寬度邊界上進行分割。所以請改用re.findall

re.findall(r'\w+,', s) 

更新:

>>> a = '''aaaa 
bbbb 
cccc 
''' 
>>> re.findall(r".+\n?", a) 
['aaaa\n', 'bbbb\n', 'cccc\n'] 
+1

我想我會建議正則表達式' '[^,] +'',因爲這似乎是更接近OP的原正則表達式。 +1,但。 – jpmc26

+0

雅,我們可以通過很多方式實現預期的輸出... –

+0

@ jpmc26有更好的方法,因爲他的正則表達式將與更廣泛的功能。 –