Python:拆分字符串,尊重括号

时间:2014-12-18 14:16:15

标签: 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}']

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

有人可以帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:3)

\s(?![^{]*})

由此分开。参见演示。

https://regex101.com/r/vN3sH3/4

re.split(r"\s(?![^{]*})",s)

print re.split(r"\s(?![^{]*})|{|}",s)

如果你不想要{}

说明:\ s space

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

这样{test 0 test 0} 0之后}之后的空格将不会被视为{前{{1}}。{/ p>