完全重复:Split a string by spaces -- preserving quoted substrings -- in Python
我想接受一个字符串并返回一个由空格分隔的列表,字典或元组。但是,我想不要匹配引号之间的空格,即
苹果橙“香蕉树”绿色
应该回来作为三个项目,“香蕉树”是一个整体项目。
如果可能的话,还应该允许转义引号。
答案 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]