2014-09-13 85 views

回答

4

空值是分裂的事情。 re.split()不適合工作。

我建議您改爲匹配你想要的。

>>> re.findall(r'[^ "]+', ' a n" "c ') 
['a', 'n', 'c'] 

如果您必須使用split,則可以使用列表理解並直接對其進行過濾。

>>> [x for x in re.split(r'[ "]+', ' a n" "c ') if x != ''] 
['a', 'n', 'c'] 
3

這就是re.split應該做的。你要求它在任何空白或引號的運行時分割字符串;如果它在開始時沒有返回空字符串,則無法將該情況與沒有空白的情況區分開來。

如果你實際上要求的是找到非空格或引號字符所有的運行,只寫:

>>> re.findall(r'[^ "]+', ' a n" "c ') 
['a', 'n', 'c'] 
1

我喜歡abarnert解決方案。

但是,你也可以做(也許不是一個Python的方式):

myString.strip() 

split(或等)前。

相關問題