在python中拆分一个字符串

时间:2012-07-31 09:04:15

标签: python python-2.6

我有python字符串如下

mystring = "copy "d:\Progrm Files" "c:\Progrm Files\once up on a time""

如何将此字符串拆分为

mylist = [copy,d:\Progrm Files,c:\Progrm Files\once up on a time]

当我尝试使用mysring.split(" ")时,空格Progrm Filesonce up on a time也会被拆分。

2 个答案:

答案 0 :(得分:9)

你想看看{lexer} shlex module。它专门将诸如你的命令行分成它的组成部分,包括正确处理引用。

>>> import shlex
>>> command = r'copy "d:\Program Files" "c:\Program Files\once up on a time"'
>>> shlex.split(command)
['copy', 'd:\\Program Files', 'c:\\Program Files\\once up on a time']

答案 1 :(得分:1)

这个正则表达式捕获了你想要的东西:

import re

mystring = "copy \"d:\Progrm Files\" \"c:\Progrm Files\once up on a time\""

m = re.search(r'([\w]*) ["]?([[\w]:\\[\w\\ ]+)*["]? ["]?([[\w]:\\[\w\\ ]+)*["]?', mystring)

print m.group(1)
print m.group(2)
print m.group(3)

>>> 
copy
d:\Progrm Files
c:\Progrm Files\once up on a time