擅长:python、mysql、java
<pre><code>def getheaders(text):
elements = re.split("(?<=\))-",text)
return '-'.join(["("+header.split(":")[0].strip("()")+")" for header in elements])
text = "(header1:content1(note1, note2),content2(note3),content3)-(header2:content)-(header3)"
getheaders(text)
>>> '(header1)-(header2)-(header3)'
</code></pre>
<p>请注意,如果<code>header</code>包含<code>:</code>,则此操作将失败,因此如果这些情况看起来不正确,您可能需要手动解析它们。我没有一个很好的解决方案,如果我不能从内容中划出标题,对不起。如果内容不能有<code>:</code>,你可以只做<code>split(":")[:-2]</code>,但是如果头和内容都可以包含一个<code>:</code>,那么就不可能(以编程的方式)知道头的结束和内容的开始。你知道吗</p>