擅长:python、mysql、java
<p>首先,我认为您需要放弃正则表达式的概念,专注于简单的括号匹配。这里有一个非常简单的表达式语法。我不想重复这样一个旅行频繁的练习,而是简单地指导您研究如何用括号解析二叉树表达式</p>
<p>基本表达式是</p>
<pre><code>left root right
</code></pre>
<p>其中<code>left</code>和<code>right</code>中的每一个</p>
<ul>
<li>子树(第一个字符是左括号)</li>
<li>叶节点标签(第一个字符是其他字符)</li>
<li>空(空白)</li>
</ul>
<p>请注意,您有一些歧义。例如,给定<code>a b</code>,结果树是<code>(a, b, None)</code>、<code>(None, a, b)</code>还是错误</p>
<p>在任何情况下,如果您专注于简单的字符串处理,您应该能够在没有外部包的情况下完成这项工作:</p>
<ul>
<li>查找第一个左括号及其匹配的右括号</李>
<li>在之后的字符串中,再次查找左右对</李>
<li>如果在第一个左paren之前有任何内容,那么它必须是左边的叶节点和根的节点标签</李>
无论哪种方式,中间必须有根节点(除非这是退化树)。<李>
<li>在您进行的每个paren匹配中重复出现</李>
</ul>
<p>你能从那里拿走吗</p>