0

次のような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も分割されています。

4

2 に答える 2

9

shlexmodule、シェルレクサーを見てみたいと思います。引用符を正しく処理するなど、コマンドラインをその構成要素に分割することを専門としています。

>>> 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']
于 2012-07-31T09:07:29.237 に答える
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
于 2012-07-31T09:33:54.057 に答える