我正在努力将带括号的字符串转换为f(d(a c(b))e)
Java 中的 Tree 数据结构(我正在研究一种允许使用字符串表示来实例化 Tree 的方法)。在上面的字符串中,f
是树的根节点,它分支成一个子树 atd
和一个叶节点 at e
。在我能够识别f
为当前节点的标签后,我剩下d(a c(b))e
.
我希望能够使用 Java 的正则表达式来识别孩子;在这种情况下,d(a c(b))
并且e
。因此,要求如下。
在字符串中,单个字符后面可能有也可能没有括号。如果后面是括号,则返回里面的所有子字符串,即使它包含嵌套的括号。因此,正则表达式将匹配d(a c(b))
or e
。
此外,我希望它不仅仅适用于有两个孩子的节点。一个可能的带括号的字符串可能f(a b c)
是一棵f
以 3 片叶子为根的树。
到目前为止,我有.\(?[^\(\)]\)?
,但这不起作用。