我想通过空格将一个字符串拆分为 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()
也会拆分字符串的结尾(它会删除引号和空格),而我想保持第三个元素完整。
我尝试使用shlex.split(mystring)[0:2]
以获得前两个元素,但后来我无法找到一个好的解决方案来从原始字符串中提取第三个元素。实际上,我希望我可以使用带参数shlex.split()
的方法。str.split()
maxsplit
有没有比使用更好的方法来做到这一点shlex.split()
?也许正则表达式?谢谢!