我试图拆分类似下面的字符串
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']
有人可以帮助我吗?
谢谢
答案 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>