Есть ли способ подсчитать количество замен для вызова Regex.Replace?
например. для Regex.Replace("aaa", "a", "b");
Я хочу получить номер 3 (результат "bbb"
); для Regex.Replace("aaa", "(?<test>aa?)", "${test}b");
Я хочу получить номер 2 (результат "aabab"
).
Способы, которые я могу сделать для этого:
- Используйте MatchEvaluator, который увеличивает захваченную переменную, выполняя замену вручную
- Получите MatchCollection и повторите его, выполнив замену вручную и сохранив счет
- Сначала найдите и получите MatchCollection, получите счетчик, затем выполните отдельную замену
Методы 1 и 2 требуют ручного анализа $replacements, метод 3 требует регулярного выражения, соответствующего строке. Есть ли лучший способ.