Управлять совпадениями RegEx для вычислений в C # - PullRequest
3 голосов
/ 17 октября 2011

В C # легко использовать RegEx, как этот

string pattern = "Version\\(\"(\\d+).(\\d+).(\\d+).(\\d+)\"\\)";
Regex rgx = new Regex(pattern);
string output = rgx.Replace(someInput, "Version $1.$2.$3.$4");

Однако я хочу знать, как извлечь $3, увеличить его и записать обратно в вывод.Это необходимо для автоматического увеличения номера сборки в моем текущем проекте.Я видел кое-что относительно делегирования оценщика, но не читал это подробно.

1 Ответ

3 голосов
/ 17 октября 2011

Для этого можно использовать MatchEvaluator делегат :

string output = rgx.Replace(input, 
    m => String.Format("Version {0}.{1}.{2}.{3}",
          m.Groups[1].Value,
          m.Groups[2].Value,
          int.Parse(m.Groups[3].Value) + 1,
          m.Groups[4].Value));
...