在没有Python的情况下,用字符串分隔带有引号的字符串

时间:2016-11-27 14:32:44

标签: python string

我有一个数据库字段中的字符串,就像这样我带入了一个可变的单词:

['spaceship', 'cars', 'boats', "'subway", "train'", 'rocket', 'bicycle', "'18", "wheeler'"]

如果我对字符串进行拆分:

['spaceship', 'cars', 'boats', "'subway train'", 'rocket', 'bicycle', "'18 wheeler'"]

我得到的结果如下:

from __future__ import print_function

我想要的是将它分成带有引号的单词的列表,所以列表看起来像这样:

from __future__ import formatted_string_literals

有没有办法在python

中以这种方式处理它

2 个答案:

答案 0 :(得分:2)

您也可以使用shlex模块:

>>> x
'spaceship cars boats "subway train" rocket bicycle "18 wheeler"'
>>> import shlex
>>> shlex.split(x)
['spaceship', 'cars', 'boats', 'subway train', 'rocket', 'bicycle', '18 wheeler']

另一种解决方案是以这种形式使用regex

import re
re.split(your_regular_exp, x)

但这并不像shlex那么简单,但在其他情况下可能证明是有用的!

答案 1 :(得分:1)

我认为CSV可能是你的朋友。

import csv
row = 'spaceship cars boats "subway train" rocket bicycle "18 wheeler"'
reader = csv.reader([row], delimiter=' ')
words = next(reader)