【发布时间】:2013-05-10 20:20:57
【问题描述】:
我正在尝试在不删除分隔符的情况下拆分字符串,但这样做时遇到了麻烦。我要拆分的字符串是:
'+ {- 9 4} {+ 3 2}'
我想结束
['+', '{- 9 4}', '{+ 3 2}']
然而我尝试过的一切都没有奏效。我正在查看这篇 stackoverflow 帖子以及谷歌的答案:Python split() without removing the delimiter
谢谢!
【问题讨论】:
-
大括号之间的值总是数字吗?
-
嵌套卷曲怎么样?
-
你能有嵌套的花括号,例如:'+ {+ 5 {- 7 2}} {+ 3 2}'吗?如果是这样,您希望在拆分中看到什么?这在我看来就像您正在尝试编写前缀符号算术表达式解析器。
-
您可能会发现此讨论很有用:stackoverflow.com/questions/5307218/… - 是的,递归解析是正确的通用方法。
-
如果我没记错我的理论,就不可能让正则表达式正确计算大括号之类的嵌套级别 - 您可能必须逐个字符地解析,自己跟踪堆栈深度,或者使用解析器生成器:stackoverflow.com/questions/133601/…