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

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

有人可以帮我吗?

谢谢

最佳答案

\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/

相关文章:

python - 如何修复 "NameError: name ' checker_start' 未定义”

python - 如何有效地从 pandas DataFrame 中删除 "pythonically"行 "old"?

python - 从 Python 向 shell 脚本传递参数

ruby - 使用 Ruby 拆分字符串时,/\t+|,/和/[\t+,]/之间有什么区别?

java - 类型/表达式非法开始(括号放置帮助?)

javascript - js正则表达式差异

python - 如何将 Python OpenID Connect 模块与 IBM Cloud App ID 结合使用?

python - 从文件中分割字符串,不带空格

javascript - 属性访问是如何工作的,下面这行有什么作用?

javascript - 访问对象属性时,括号表示法是否比句点表示法慢?