文字列をスペースで 3 つの要素に分割したいのですが、引用符で囲まれた部分文字列を分割したくありません (引用符をエスケープするためにバックスラッシュを含めることもできます)。
例えば:
"command argument other arguments and options"
>> ['command', 'argument', 'other arguments and options']
'command "my argument" other arguments and options'
>> ['command', 'my argument', 'other arguments and options']
'command "my \"ugly\" argument" other "arguments" and options'
>> ['command', 'my "ugly" argument', 'other "arguments" and options']
この同様の質問を見ましたがshlex.split()
、文字列の末尾も分割します (引用符とスペースを削除します) が、3 番目の要素はそのままにしておきます。
最初の 2 つの要素を取得するために使用しようとしshlex.split(mystring)[0:2]
ましたが、元の文字列から 3 番目の要素を抽出するための適切な解決策を見つけることができません。本当は引数付きのメソッドshlex.split()
のように使えたらいいのにと思います。str.split()
maxsplit
を使用するよりもこれを行うためのより良い方法はありshlex.split()
ますか? おそらく正規表現?ありがとう!