Python Shlex 用括号分割

标签 python string shlex

我需要将一系列字符串拆分为由空格表示的 3 个组成部分。这些字符串有时包含子列表,但始终作为字符串的最后一个组成部分。

我之前使用 Shlex 取得了巨大的成功,但我不再获得所需的结果,因为我最近的子列表包含它们自己的空格,这似乎让 Shlex 失望了。

是否有 Shlex 的替代方案可以更好地执行任务?

一些例子是:

'BREAKFAST IN ["Rolled Oats","Cornflakes","French Toast"]'

COPIES_FOR_EXTERNAL > "0"

应该变成这样的列表:

['BREAKFAST','IN', '["Rolled Oats","Cornflakes","French Toast"]']

['COPIES_FOR_EXTERNAL','>','"0"']

最佳答案

由于您知道组件的数量并且子列表始终是最后一个元素,因此您可以使用 str.split使用 maxsplit 参数:

s1 = 'BREAKFAST IN ["Rolled Oats","Cornflakes","French Toast"]'
s2 = 'COPIES_FOR_EXTERNAL > "0"'

print s1.split(None, 2) # ['BREAKFAST', 'IN', '["Rolled Oats","Cornflakes","French Toast"]']
print s2.split(None, 2) # ['COPIES_FOR_EXTERNAL', '>', '"0"']

关于Python Shlex 用括号分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36927940/

相关文章:

python - 通过套接字发送二进制文件时出现问题,python

c++ - 为什么不是所有的字符串字符都被访问?

python - elisp 相当于 python shlex.split?

c++ - 字符串连接错误

java - CTCI 的字符串排列解法的这个解法正确吗?

python - shlex.split 仍然不支持 unicode?

python - 寻找使用 pysftp 加载/使用公共(public) ssh key 的示例

python - Pandas : Copy recent date's data for missing days

Python:Ascii字符<->十进制表示转换