我想在XML元素标签中删除':',在C#中使用正则表达式。
我知道解析文档是一种方法,而不是正则表达式。但它是一个遗留项目,它使用Regex替换XML Document内容。不是处理XML Document的理想方法,但我无能为力。
我对正则表达式并不擅长,只是无法找到一种方法来替换元素标签中的':'而不是值......
例如
<tag:name> the value with the tag http://www.example.com </tag:name>
我想替换:只在元素名称中使用_而不是值。所以结果应该是:
<tag_name> the value with the tag http://www.example.com </tag_name>
有什么想法吗?
谢谢!
答案 0 :(得分:2)
这针可以做你想要的:
<[^>]*(:)[^>]*>
第一个模式组将在标记名称中包含(:)。如果您要进行替换,可以将(<[^>]*)(:)([^>]*>)
替换为$1_$3
,其中$1
和$3
是子模式。
答案 1 :(得分:1)
这对你有用吗?
Regex tagRegex = new Regex("<[^>]+>");
yourXML = tagRegex.Replace(yourXML, delegate(Match thisMatch)
{
return thisMatch.Value.Replace(":", "_");
});