正则表达式替换字符串后的数字

时间:2015-05-10 12:55:43

标签: c# regex

我正在寻找一个正则表达式来替换以下部分:

输入:

(`0[],System.Func{`0,``0,``1})

输出:

(T1[],System.Func{T1,Tm1,Tm2})

注意:数字的增加会很好,但并非绝对必要。

是否有可以执行此操作的模式?

1 个答案:

答案 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)) + "})");

输出:

enter image description here