C# 正则表达式应该替换xml文件中的内容,而不是标记名

C# 正则表达式应该替换xml文件中的内容,而不是标记名,c#,regex,C#,Regex,请参阅下面的代码: Match match = Regex.Match(doc.OuterXml, "\\b" + l_sOldvalue + "\\b"); if ((match.Success) && (l_bflag)) { string pattern = "\\b" + l_sOldvalue + "\\b"; string l_sChangexml = Regex.Replace(doc.OuterXml, pattern, l_sNewValue);

请参阅下面的代码:

Match match = Regex.Match(doc.OuterXml, "\\b" + l_sOldvalue + "\\b");
if ((match.Success) && (l_bflag))
{
    string pattern = "\\b" + l_sOldvalue + "\\b";
    string l_sChangexml = Regex.Replace(doc.OuterXml, pattern, l_sNewValue);
    doc.LoadXml(l_sChangexml);
}
这里我使用正则表达式Match和Replace,但它也替换了标记名。对我来说,标签名称不应该被替换

doc.outerxml-->包含完整的xml文件

有谁能解决这个问题吗?

您想在正则表达式中使用“负回溯”。例如,如果您想确保不会捕获像
这样的标记,而是将所有出现的
blafasel
作为一个单词,请使用以下模式:

var pattern = @"(?i)(?<![</])\bblafasel\b";

var pattern=@”(?i)(?hmm-删除所有内容可以通过删除
预编码/>*?请检查最佳答案。我检查了,但不清楚,您能否将确切的正则表达式共享给我?他们指出,使用正则表达式是错误的工具。在.NET framework中有一个完整的专用于XML处理的工具。我只想在正则表达式中找到一个解决方案,这样对我来说更容易处理。请给出一个x的示例ml,之前和之后。非常感谢,现在它为我工作了,再次非常感谢:)你能解释一下下面使用的正则表达式吗?“(?i)(?它说
(?i)
regexengine,小心:
(?我不想在我的搜索字符串左边看到以下
[谢谢,我想了解更多正则表达式的示例,请与我分享任何链接以了解更多帮助我最大的资源是这本书。它的方法非常好,示例很容易理解。我使用了这个正则表达式,它非常有效。@(?i)@(?i)(?您好,上面的示例很好,但是您可以更新regex并与我共享,其中属性名称也不应重命名。例如:此处“id”不应重命名。您可以为我们提供解决方案吗asap@SakthiRaj我不完全理解你想要什么。你只想要属性名吗(例如:
)或者只是或者你想让jast保持id属性包含其值(例如:
)?如果id属性始终是第一个属性,那么最后一个属性很容易。您好,我不想更改属性名称,例如“id”,但属性值可以更改,例如“10”,我想我们必须修改以下@”(?I)(?)?
string pattern = @"(?i)(?<![</])\b" + l_sOldvalue + @"\b";    
Match match = Regex.Match(doc.OuterXml, pattern);

if ((match.Success) && (l_bflag))
{
    string l_sChangexml = Regex.Replace(doc.OuterXml, pattern, l_sNewValue);
    doc.LoadXml(l_sChangexml);
}
s/>.*?</></g
s/(<\w+)\W.*?>/\1/g;