我正在寻找一个正则表达式来替换以下部分:
输入:
(`0[],System.Func{`0,``0,``1})
输出:
(T1[],System.Func{T1,Tm1,Tm2})
注意:数字的增加会很好,但并非绝对必要。
是否有可以执行此操作的模式?
答案 0 :(得分:2)
您可以使用此代码:
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)) + "})");
输出: