我正在尝试分割类似以下字符串的内容
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']
有人可以帮我吗?
谢谢
最佳答案
\s(?![^{]*})
按此分割。请参阅演示。
https://regex101.com/r/vN3sH3/4
re.split(r"\s(?![^{]*})",s)
或者
print re.split(r"\s(?![^{]*})|{|}",s)
如果您也不想要 {}
。
说明:\s 空格
(?![^{]*})
负向前瞻,表示空格后不应该有 }
,其前面没有 {
.
这样 {test 0 test 0}
0
之后的空格将不会被考虑,因为它前面有 }
而没有 {
。
关于Python:分割字符串,尊重括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27548612/