Как к Regex заменяют объект группы соответствия результатом метода

// $ каждый в $ push разрешает только массив значений. Поэтому вы должны изменить свой объект данных на массив объекта

const data =[ {
      domain: req.body.domain,
      in: [{
        content : "New Graph",
        graph : {}
      }],
      out: [{
        content : "New Graph",
        graph : {}
      }]
  }]
7
задан Peter Boughton 30 October 2009 в 19:22
поделиться

2 ответа

Попробуйте использовать следующую команду Заменить перегрузку.

public static string Replace( string input, string pattern, MatchEvaluator evaluator);

MatchEvaluator имеет доступ к содержимому Match и может вызывать любые другие методы для возврата строки замены.

4
ответ дан 6 December 2019 в 23:13
поделиться

Вы можете использовать MatchEvaluator следующим образом:

public static class Program
{
    public static void Main()
    {
        string input = "LineA:5\r\nLineB:2\r\nLineA:2\r\nLineB:7";
        string output = Regex.Replace(input, @"LineA:(?<input_value>\d+)\r\nLineB:\d+", new MatchEvaluator(MatchEvaluator));
        Console.WriteLine(output);
    }

    private static string MatchEvaluator(Match m)
    {
        int inputValue = Convert.ToInt32(m.Groups["input_value"].Value);
        int outputValue = MultiplyCalculatorMethod(inputValue);

        return string.Format("LineA:{0}\r\nLineB:{1}", inputValue, outputValue);
    }

    static int MultiplyCalculatorMethod(int value) 
    { 
        return 2 * Math.Max(3, value); 
    }
}
7
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: