C# 正则表达式查找标记之间的特定字符

本文关键字:字符 之间 正则表达式 查找 | 更新日期: 2023-09-27 18:37:19

真的刚刚开始使用正则表达式,只能做基本的事情。

我想将 XML 文件的元素标签中的连字符转换为下划线。 我已经有一个 c# 应用程序,它可以读取带有查找和替换元素的配置文件,并在 RegEx 中进行一些其他清理工作,但无法弄清楚这一点

所以目前它将作为

<在这里转换>但不是这些

我希望它吐出来

但不是这些

C# 脚本 jut 会吸入文件并逐行读取它,它不会将其视为 xml 文件

所以基本上我认为我只需要一种模式来查找<和>之间的任何和所有连字符

谢谢

C# 正则表达式查找标记之间的特定字符

放弃正则表达式。解析您的 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>