如何解析有问题的字符串

时间:2013-07-08 19:31:23

标签: python parsing

我正在使用Scratch - Python处理程序,基本上可以在解析大师的帮助下完成:)

我正在尝试处理不太正确的输入(我的Scratch程序员可能只有7岁,所以我的处理程序应该接收这样的字符串

"motor1" "12.5" "motor2" 80 "sonar8" "Pin11On" 

但是当Scratch已经包含额外的“围绕变量/名称值并带有空格

时,它们很容易就会像这样结束
"motor 1" "12.345 " "motor2" 80 "sonar 8" "Pin 11 On"

我正在寻找的是上面的代码并返回一个新的字符串

motor1 12.345 motor2 80 sonar8 Pin11On

任何建议都很受欢迎:)

西蒙

1 个答案:

答案 0 :(得分:4)

In [52]: text = '"motor 1" "12.345 " "motor2" 80 "sonar 8" "Pin 11 On"'

In [53]: import shlex

In [54]: shlex.split(text)
Out[54]: ['motor 1', '12.345 ', 'motor2', '80', 'sonar 8', 'Pin 11 On']

In [55]: [item.replace(' ','') for item in shlex.split(text)]
Out[55]: ['motor1', '12.345', 'motor2', '80', 'sonar8', 'Pin11On']

In [56]: ' '.join([item.replace(' ','') for item in shlex.split(text)])
Out[56]: 'motor1 12.345 motor2 80 sonar8 Pin11On'