C# 使用正则表达式捕获组替换部分XML
我想捕获XML字符串的一部分,并用新值替换捕获的值 我有以下代码:C# 使用正则表达式捕获组替换部分XML,c#,regex,C#,Regex,我想捕获XML字符串的一部分,并用新值替换捕获的值 我有以下代码: Regex regex = new Regex("<ns1:AcctId>(?<AcctId>.*?)</ns1:AcctId>"); Match match = regex.Match(Xml); string AcctId = match.Groups["AcctId"].Value; string IBANizedAcctId = IBANHelper.ConvertBBANToIB
Regex regex = new Regex("<ns1:AcctId>(?<AcctId>.*?)</ns1:AcctId>");
Match match = regex.Match(Xml);
string AcctId = match.Groups["AcctId"].Value;
string IBANizedAcctId = IBANHelper.ConvertBBANToIBAN(AcctId);
newXml = Regex.Replace(oldXml, regex, IBANizedAcctId); //DOES NOT WORK!
Regex Regex=new Regex((?,但我不懂)
我希望有人能帮助我!Regex Regex=new Regex((?*);
Regex regex = new Regex("<ns1:AcctId>(?<AcctId>.*?)</ns1:AcctId>");
Match match = regex.Match(oldXml);
string AcctId = match.Groups["AcctId"].Value;
string IBANizedAcctId = IBANHelper.ConvertBBANToIBAN(AcctId);
newXml = oldXml.Replace(AcctId, IBANizedAcctId); //should work...
Match=regex.Match(oldXml);
字符串AcctId=match.Groups[“AcctId”].Value;
字符串IBANizedAcctId=IBANHelper.convertbantoiban(AcctId);
newXml=oldXml.Replace(AcctId,IBANizedAcctId);//应该可以。。。
ok…出于某种原因,它不允许我发布我的答案…:(以下是我对现有代码所做的两项更改:Match Match=regex.Match(oldXml);-and-string newXml=oldXml.Replace(AcctId,IBANizedAcctId);也无法回答:但我找到了这个解决方案,这要感谢我的回答:我知道最后一部分应该是:Xml=regex.Replace(Xml,regexString,string.Format(“$1{0}$3”,iBanizedACTID));
其中regexString有三个捕获组:string regexdestactintString=“()(?*?))“;
第$1
和$3
分别引用第一个和第三个捕获组,并用新值替换中间的值。80%确定有效。@MaxOvrdrv更符合逻辑。:)试试看……我的也可以100%有效,并且可以跨整个Xml字符串。不仅仅是匹配项。取决于您;)我想捕获所有出现的***
,它们可以包含不同的数字。我接受了答案,因为它确实有效!但我现在的要求有点不同。我为此提出了一个新问题。