C#Regex - 匹配和替换,自动增量

Mar*_*ill 6 c# asp.net

我一直在努力解决问题,任何帮助将不胜感激.

问题:我有一个段落,我想要替换多次出现的变量(变量= @Variable).这是一个简单的部分,但我遇到困难的部分是尝试用不同的值替换变量.

我需要每次出现都有不同的值.例如,我有一个函数可以对每个变量进行计算.我到目前为止的内容如下:

private string SetVariables(string input, string pattern){

    Regex rx = new Regex(pattern);
    MatchCollection matches = rx.Matches(input);
    int i = 1;
    if(matches.Count > 0)
    {
        foreach(Match match in matches)
        {
            rx.Replace(match.ToString(), getReplacementNumber(i));
            i++
        }
    }
Run Code Online (Sandbox Code Playgroud)

我能够用getReplacementNumber(i)函数返回的数字替换我需要的每个变量,但是如何用匹配集合中找到的相同顺序将它放回到我的原始输入中的替换值?

提前致谢!

马库斯

Mar*_*ers 9

的使用过载Replace,需要一个MatchEvaluator作为其第二个参数.

string result = rx.Replace(input, match => { return getReplacementNumber(i++); });
Run Code Online (Sandbox Code Playgroud)

我假设在这里getReplacementNumber(int i)返回一个string.如果没有,您将必须将结果转换为字符串.

看到它在线工作:ideone