【发布时间】:2012-08-28 06:09:09
【问题描述】:
从某处接收一个字符串,该字符串是一系列参数。参数由空格分隔。任务是将字符串解析为参数列表,所有参数都是字符串类型。
例如:
input : "3 45 5.5 a bc"
output : ["3","45","5.5","a","bc"]
如果需要传输一个包含空格的字符串,事情就变得有点复杂了,使用" 来引用。
input: "3 45 5.5 \"This is a sentence.\" bc"
output: ["3","45","5.5","This is a sentence.","bc"]
但是如果句子恰好包含引号怎么办?使用转义字符:\" -> ", \\ -> \
input: "3 45 5.5 \"\\\"Yes\\\\No?\\\" it said.\" bc"
output: ['3','45','5.5','"Yes\\NO?" it said.','bc']
python 有没有优雅的方式来完成这项工作?
附言。我不认为正则表达式可以解决这个问题。
【问题讨论】:
-
csv 模块使用带有空格分隔的方言?
-
您的最后一个输入字符串在反斜杠方面有点偏离;纠正它会帮助你快速得到正确的答案。
-
“优雅的解析器”和“垃圾数据”不能并存