我有一个应该替换的单词列表 HTML 页面,但前提是单词不在标签列表中(如 A B I)
所以如果有文本:
<p> some text and XXX term <a href="http://some-XXX-bla.com">good morning XXX world</a> other text and XXX term <b>another XXX inside other sentance</b> </p>
XXX 应替换为 YYY,最终文本应为:
<p> some text and YYY term <a href="http://some-XXX-bla.com">good morning XXX world</a> other text and YYY term <b>another XXX inside other sentance</b> </p>
仅当 XXX 不在限制标签列表(A、I、B)内时,YYY 才替换 XXX
应该以某种方式在 C# regex 中完成
非常感谢您的帮助:)
最佳答案
这已经说过很多次了,但我不妨在这里重复一遍……你真的不想使用正则表达式来进行 HTML 解析。它根本不适合 HTML 的复杂性(用正则表达式解析比乍看起来要难很多)。
.NET 的最佳选择是 HTML Agility Pack ,这是一个非常强大的库,可以正确解析任何形式的 HTML“汤”。它也更易于操作,因为它公开了 DOM 结构。这将使您能够简单地遍历 DOM 并轻松检查父/祖先节点,以便可以通过更改适当元素的 InnerText
属性来执行替换。完成所有操作后,只需简单调用即可从修改后的 DOM 对象输出原始 HTML。
关于c# - 如果文本不在某些指定的 HTML 标记内,则替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960709/