Python:拆分字符串,并使用括号

Python:拆分字符串,并使用括号,python,split,brackets,Python,Split,Brackets,我正在尝试拆分类似以下字符串的内容 s = '1 2 3 {test 0, test 0} {test 0 test 0}' 我想得到的是 ['1', '2', '3', '{test 0, test 0}', '{test 0, test 0}'] 或 谁能帮帮我吗 谢谢 \s(?![^{]*}) 按此拆分。请参阅演示 或 如果您不想同时使用{} 说明:\sspace (?![^{]*})空格后的负前瞻声明不应该有前面没有{的} 因此,通过这种方式,{test 0 test 0}将不会

我正在尝试拆分类似以下字符串的内容

s = '1 2 3 {test 0, test 0} {test 0 test 0}'
我想得到的是

['1', '2', '3', '{test 0, test 0}', '{test 0, test 0}']

谁能帮帮我吗

谢谢

\s(?![^{]*})
按此拆分。请参阅演示

如果您不想同时使用
{}

说明:\s
space

(?![^{]*})
空格后的负前瞻声明不应该有前面没有
{
}


因此,通过这种方式,
{test 0 test 0}
将不会考虑
0
后面的空格,因为它前面有
}
,但
{

请考虑添加对您选择的正则表达式的解释。当然,我们可以自己搜索,但这将使您的答案更加精确:)
['1'、'2'、'3'、''、''、'测试0、测试0'、''、''、'测试0、测试0']
与所需的op不匹配output@jamylak如果您谈论的是第二次测试之间的
,这是OP的打字错误。否则,如果OP有嵌套的括号,这将无法正确处理它们。但在这种情况下,您无论如何不能使用正则表达式。@Kevin是的,这将需要python不支持的递归
\s(?![^{]*})
re.split(r"\s(?![^{]*})",s)
print re.split(r"\s(?![^{]*})|{|}",s)