如何从Regex.Replace获得匹配数

Joh*_*kel 0 .net c#

我想在C#dot net中进行正则表达式替换,我想知道有多少替换.什么是最好的方法?

我现在能做的最好的事情就是看前/后看是否有任何改变

var a = "gooodbaaad";
var b = Regex.Replace(a,"[oa]","x");
if (a != b) Debug.Write("changed");
Run Code Online (Sandbox Code Playgroud)

但这似乎是间接的,在所有情况下都不准确.

Nic*_*rey 5

尝试以下内容.它将1个或多个单词字符的所有序列转换为文字文本{word}并计算替换.所以,源文本

The quick brown fox jumped over the lazy dog.
Run Code Online (Sandbox Code Playgroud)

会变成

{word} {word} {word} {word} {word} {word} {word} {word} {word}.
Run Code Online (Sandbox Code Playgroud)

在操作结束时,变量cnt具有值9.

Regex pattern      = new Regex( @"\w+" ) ;
string source      = GetMeMySourceData() ;
int    cnt         = 0 ;
string transformed = pattern.Replace( source , m => {
    ++cnt ;
    return "{word}" ;
  });
Run Code Online (Sandbox Code Playgroud)

封闭的力量.