我有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 Files
和once up on a time
也会被拆分。
答案 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