Python删除未闭合的标记

2024-10-02 12:31:37 发布

您现在位置:Python中文网/ 问答频道 /正文

Python中有一系列未闭合的字符串。注意:对于NLP解析器,这不需要是正确的XML。例如,考虑以下字符串:

<hi><TIMEX>every monday, wednesday and friday</TIMEX> </TIMEX>but <TIMEX>not saturday 
</TIMEX></bye><TIMEXUNTIL>until january</TIMEXUNTIL> from <TIMERANGE>11:30am-12:00
</TIMERANGE>

我们有一个额外的开放标签:

^{pr2}$

和额外的结束标记:

</TIMEX>
</bye>

如何轻松删除没有匹配的打开/关闭标记?我想要的输出是:

<TIMEX>every monday, wednesday and friday</TIMEX> but <TIMEX>not saturday 
</TIMEX><TIMEXUNTIL>until january</TIMEXUNTIL> from <TIMERANGE>11:30am-12:00
</TIMERANGE>

Tags: and字符串notbutuntilbyetimerangetimex
1条回答
网友
1楼 · 发布于 2024-10-02 12:31:37

一种解决方案是遍历字符串,查找标记,包括关闭的和打开的标记。在

然后把逻辑,相应地。理想情况下,它可以用堆栈数据结构来解决。可以使用以下逻辑编写代码。-在

  1. 设a为标签,打开或关闭
  2. 检查标签是否在列表中,反之亦然
  3. 如果您在列表中找到合适的标记并将其删除。如果没有,也添加该标记及其位置。适当的标记可以定义为打开的一个或另一个打开的标记的闭合标记,或闭合标记的打开标记。在
  4. 在迭代结束时,您将有未关闭/未打开的标记及其位置。现在您可以继续并删除。在

相关问题 更多 >

    热门问题