首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#正则表达式仅删除元素名称中的字符,而不替换值

C#正则表达式仅删除元素名称中的字符,而不替换值
EN

Stack Overflow用户
提问于 2011-12-08 10:18:04
回答 2查看 1K关注 0票数 2

我只想去掉XML元素标记中的':‘,在C#中使用正则表达式。

我知道解析文档是可行的,而不是regex..but,它是一个遗留项目,它使用正则表达式来替换XML文档内容。这不是处理XML文档的理想方法,但我无能为力。

我不擅长使用正则表达式,就是想不出只从元素标签而不是值来替换':‘的方法。

例如<tag:name> the value with the tag http://www.example.com </tag:name>

我想将:替换为元素名称中的_ only,而不是value。所以结果应该是:

<tag_name> the value with the tag http://www.example.com </tag_name>

有什么想法吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-08 11:00:50

这对你有效吗?

代码语言:javascript
运行
复制
Regex tagRegex = new Regex("<[^>]+>");
yourXML = tagRegex.Replace(yourXML, delegate(Match thisMatch)
{
   return thisMatch.Value.Replace(":", "_");
});
票数 1
EN

Stack Overflow用户

发布于 2011-12-08 10:24:24

这根针应该能做你想做的事:

<[^>]*(:)[^>]*>

第一个模式组将在标记名称中包含(:)。如果你想做一个替换,你可以用$1_$3替换(<[^>]*)(:)([^>]*>),其中$1$3是子模式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8425338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档