拆分参数 - 保留引用的子串 - 在python中

时间:2009-02-07 20:42:21

标签: python parsing

完全重复:Split a string by spaces -- preserving quoted substrings -- in Python


我想接受一个字符串并返回一个由空格分隔的列表,字典或元组。但是,我想不要匹配引号之间的空格,即

  

苹果橙“香蕉树”绿色

应该回来作为三个项目,“香蕉树”是一个整体项目。

如果可能的话,还应该允许转义引号。

2 个答案:

答案 0 :(得分:1)

这个问题听起来很像解析标签输入,你可以看一下解决这类问题的django-tagging utils.py实现

答案 1 :(得分:-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]