2009-02-07 32 views
1

完全重複:Split a string by spaces -- preserving quoted substrings -- in Python分裂參數 - 保引述子 - 在python


我想在一個字符串和返回值作爲用空格分隔的列表,字典或元組。不過,我想不匹配在某種程度上引號之間的空間,即

蘋果橙「香蕉樹」綠色

應該回來的三個項目,「芭蕉樹」是一個整體項目。

如果可能的話,它也應該允許轉義引號。

+0

更名兩個問題,使之明顯,他們是確切的重複。 – 2009-02-07 22:47:03

+0

問題是,有幾種方法來命名這樣一個問題,可惜我錯過了另一個。 – Teifion 2009-02-08 13:23:24

回答

-2
def splitstring(string): 
    """ 
    >>> string = 'apple orange "banana tree" green' 
    >>> splitstring(string) 
    ['apple', 'orange', 'green', '"banana tree"'] 
    """ 
    import re 
    p = re.compile(r'"[\w ]+"') 
    quoted_item = p.search(string).group() 
    newstring = p.sub('', string) 
    return newstring.split() + [quoted_item] 
1

這個問題聽起來很像解析標籤的輸入,你可以看看Django的標記utils.py實施解決了這樣的問題