Взгляните на Regex.Replace(string, string, MatchEvaluator)
:
http://msdn.microsoft.com/en-us/library/ht1sxswy.aspx
Это должно позволить вам пройти MatchEvaluator, который проверяет индекс конкретного совпадения, поэтому в этом случае вы можете искать index == 1
Хотя они дают одинаковый результат, технически есть небольшая разница. При добавлении дополнительного метода async
будет создан дополнительный конечный автомат, который не вызывает значительных изменений в производительности, но заслуживает рассмотрения.
По сути, это очень похоже на то, как в этот вопрос .