擅长:python、mysql、java
<p>这是一种方法;它递归地删除内部完整标记<code><[^<>]*></code>,直到只剩下外部级别的元素:</p>
<pre class="lang-py prettyprint-override"><code>def parse(string):
while True:
output = re.sub(r'(?<!^)<([^<>]*)>(?!$)', '', string)
if output == string:
break
string = output
return output
</code></pre>
^{pr2}$
<pre class="lang-py prettyprint-override"><code>>>> %timeit parse(string)
6.57 µs ± 99.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p>还应该有一种方法在regex本身中进行递归,但我不能完全使它工作。内置模块<code>re</code>不支持此功能,但<a href="https://pypi.org/project/regex/" rel="nofollow noreferrer">^{<cd3>}</a>支持。<a href="https://stackoverflow.com/questions/26385984/recursive-pattern-in-regex">Here</a>是关于这个的一些想法。在</p>