【发布时间】:2010-03-15 16:29:27
【问题描述】:
我在 CDATA 元素中有 HTML(HTML 太糟糕而无法解析),我想删除 <a href> 标签,但在标签中保留文本。
我正在搜索正则表达式,但仍然找不到这样做的好方法。
欢迎所有建议!
【问题讨论】:
-
输入和所需输出的一些示例会有所帮助
我在 CDATA 元素中有 HTML(HTML 太糟糕而无法解析),我想删除 <a href> 标签,但在标签中保留文本。
我正在搜索正则表达式,但仍然找不到这样做的好方法。
欢迎所有建议!
【问题讨论】:
您可以通过正则表达式从字符串中删除看起来像 HTML 链接的任何内容。结果在很大程度上取决于您的输入,但将 </?a\b[^>]*> 替换为空字符串可能会让您走得更远。
在任何情况下,使用正则表达式处理 HTML 都是蹩脚和临时性的。如果您的输入数据集有限且广为人知,而您需要做的只是一些一次性的转换代码,那么糟糕和临时的代码可能就足够了,您可以侥幸逃脱。
如果您正在开发旨在成为长期存在的代码,您绝对应该研究一种可用的 HTML 解析器(BeautifulSoup 用于 Python 或 HTML Agility Pack for .NET),而不是仅以结构化的方式处理您的 HTML,但也可以在您处理它时对其进行修复。
【讨论】: