Python 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.splitmaxsplit参数:

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"']

相关内容

  • 没有找到相关文章

最新更新