C# 正则表达式查找标记之间的特定字符
本文关键字:字符 之间 正则表达式 查找 | 更新日期: 2023-09-27 18:37:19
真的刚刚开始使用正则表达式,只能做基本的事情。
我想将 XML 文件的元素标签中的连字符转换为下划线。 我已经有一个 c# 应用程序,它可以读取带有查找和替换元素的配置文件,并在 RegEx 中进行一些其他清理工作,但无法弄清楚这一点
所以目前它将作为
<在这里转换>但不是这些在这里转换>
我希望它吐出来
但不是这些
C# 脚本 jut 会吸入文件并逐行读取它,它不会将其视为 xml 文件
所以基本上我认为我只需要一种模式来查找<和>之间的任何和所有连字符 和>
谢谢
放弃正则表达式。解析您的 XML,并修复它。使用 XDocument
类使这变得非常容易。
假设我们从以下 XML 文档开始:
<this-is>
<an-xml>
<doc but-I="remain-untouched">look-at-me</doc>
</an-xml>
</this-is>
我们可以将其加载到XDocument
中并修复元素名称。
var str = "<this-is><an-xml><doc but-I='"remain-untouched'">look-at-me</doc></an-xml></this-is>";
var xdoc = XDocument.Parse(str);
foreach(var el in xdoc.Descendants())
{
var name = el.Name.LocalName;
name = name.Replace("-", "_");
el.Name = el.Name.Namespace + name;
}
var fixedXmlString = xdoc.ToString();
现在这给了我们以下内容:
<this_is>
<an_xml>
<doc but-I="remain-untouched">look-at-me</doc>
</an_xml>
</this_is>