我有如下的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
也被拆分时。
我有如下的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
也被拆分时。
你想看看shlex
模块,shell lexer。它专门用于将命令行(例如您的命令行)拆分为其组成部分,包括正确处理引用。
>>> 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']
这个正则表达式捕捉你想要的:
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