在Python中,将带引号的字符串与不带引号的字符串分开
我有一个来自数据库字段的字符串,它是这样的,我把它变成了一个可变的词:在Python中,将带引号的字符串与不带引号的字符串分开,python,string,Python,String,我有一个来自数据库字段的字符串,它是这样的,我把它变成了一个可变的词: spaceship cars boats "subway train" rocket bicycle "18 wheeler" 如果我使用以下命令对字符串进行拆分: words = string.split() 我得到的结果如下: ['spaceship', 'cars', 'boats', "'subway", "train'", 'rocket', 'bicycle', "'18", "wheeler'"] ['
spaceship cars boats "subway train" rocket bicycle "18 wheeler"
如果我使用以下命令对字符串进行拆分:
words = string.split()
我得到的结果如下:
['spaceship', 'cars', 'boats', "'subway", "train'", 'rocket', 'bicycle', "'18", "wheeler'"]
['spaceship', 'cars', 'boats', "'subway train'", 'rocket', 'bicycle', "'18 wheeler'"]
我想将其拆分为一个列表,其中包含tact中引用的单词,因此列表如下所示:
['spaceship', 'cars', 'boats', "'subway", "train'", 'rocket', 'bicycle', "'18", "wheeler'"]
['spaceship', 'cars', 'boats', "'subway train'", 'rocket', 'bicycle', "'18 wheeler'"]
在python中有没有一种处理这种情况的方法我想CSV可能是您的朋友
import csv
row = 'spaceship cars boats "subway train" rocket bicycle "18 wheeler"'
reader = csv.reader([row], delimiter=' ')
words = next(reader)
我想CSV可能是你在这里的朋友
import csv
row = 'spaceship cars boats "subway train" rocket bicycle "18 wheeler"'
reader = csv.reader([row], delimiter=' ')
words = next(reader)
您还可以使用模块:
另一种解决方案是使用以下形式的regex
:
import re
re.split(your_regular_exp, x)
但这并不像shlex那么简单,但在其他情况下可能会很有用 您也可以使用模块:
另一种解决方案是使用以下形式的regex
:
import re
re.split(your_regular_exp, x)
但这并不像shlex那么简单,但在其他情况下可能会很有用