在Python中,将带引号的字符串与不带引号的字符串分开

2024-04-29 10:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自数据库字段的字符串,它是这样的,我把它变成了一个可变的词:

 spaceship cars boats "subway train" rocket bicycle "18 wheeler"

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

words = string.split()

我得到的结果如下:

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

我想要的是将它拆分成一个列表,其中包含tact中引用的单词,因此列表将如下所示:

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

在python中有没有这样的处理方法


Tags: 字符串数据库列表stringtraincarswheelersplit
2条回答

我想CSV可能是你的朋友

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

也可以使用^{}模块:

>>> 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那么简单,但在其他情况下可能会很有用

相关问题 更多 >