C#,如何编写RegEx.Replace来替换xml元素的值

本文关键字:xml 替换 元素 Replace 何编写 RegEx | 更新日期: 2023-09-27 18:19:57

有一个xml字符串,目标是将xml元素值替换为固定字符串,即对于blah-blah-blah将其替换为固定值,我想使用RegEx.replace,而不是将字符串加载到DOM模型并进行替换。

有人能帮忙写这个正则表达式吗?本质上,目标是匹配元素标签"abc"中的所有内容

非常感谢!

C#,如何编写RegEx.Replace来替换xml元素的值

本文告诉您需要了解的内容:XML不是正则的

忽略了他们问题的最明显的解决方案(即使用预先存在的XML解析器),他们认为应该使用正则表达式(简称regex)。现在他们有两个问题。

仅在正则语言上使用正则表达式

也就是说,有许多网站声称为编写XML正则表达式提供指导他们都错了。但它们是存在的,你可以使用它们,风险自负。

为了它的价值,不要。

正常处理XML,使用XmlDocumentXml.LinqXmlReader/Writer,这就是它们的用途,涵盖了我们甚至无法想象的各种边缘情况,最重要的是,它们被证明是有效的。

请不要使用正则表达式。只是不要。

我的2美分。

让向下投票开始

Regular表达式用于正则语言。XML是一种非正则语言。因此,正则表达式不能用来正确地解析其中所写的任何内容。您需要使用一个真正的XML解析器来实现这一点,该解析器可以在C#中的许多库中找到。

正则表达式不适合处理标记。在其他缺陷中,如果元素可以嵌套,它们就不会起作用:

<abc> ... <abc> ... </abc> ... </abc>

他们也无法区分评论和不评论。

您需要一个真正的XML解析器。