C# 正则表达式替换字符串后面的数字
我正在寻找一个正则表达式来替换以下部分: 输入:C# 正则表达式替换字符串后面的数字,c#,regex,C#,Regex,我正在寻找一个正则表达式来替换以下部分: 输入: (`0[],System.Func{`0,``0,``1}) 输出: (T1[],System.Func{T1,Tm1,Tm2}) 注意:增加这个数字会很好,但不是绝对必要的 有一种模式可以做到这一点吗?您可以使用以下代码: var txt = new Regex(@"(?si)\(`(\d+)\[\],([a-z]+\.[a-z]+)\{`(\d+).`{2}(\d+).`{2}(\d+)\}\)"); var res = txt.Repl
(`0[],System.Func{`0,``0,``1})
输出:
(T1[],System.Func{T1,Tm1,Tm2})
注意:增加这个数字会很好,但不是绝对必要的
有一种模式可以做到这一点吗?您可以使用以下代码:
var txt = new Regex(@"(?si)\(`(\d+)\[\],([a-z]+\.[a-z]+)\{`(\d+).`{2}(\d+).`{2}(\d+)\}\)");
var res = txt.Replace(@"(`0[],System.Func{`0,``0,``1})", m =>
"(T" + string.Format("{0}", (Int32.Parse(m.Groups[1].Value) + 1)) +
"[]," + m.Groups[2].Value + "{T" + string.Format("{0}", (Int32.Parse(m.Groups[3].Value) + 1)) +
",Tm" + string.Format("{0}", (Int32.Parse(m.Groups[4].Value) + 1)) +
",Tm" + string.Format("{0}", (Int32.Parse(m.Groups[5].Value) + 1)) + "})");
输出:
(T1[],System.Func{T1,Tm1,Tm2})
这个字符串是什么意思?它看起来像某种编程语言的标记,不是吗?这种语言需要一个解析器,而不是正则表达式,它是包含VS生成的.Net程序集的所有Xml注释的Xml文件的一部分。