c# 正则匹配后轮换,同一个词替换为不同的词

c# 正则匹配后替换,同一个词替换为不同的词


string content="这是中国一个中国二个中国";
Regex r1 = new Regex(@"("中国 ")");
MatchCollection matchCollection = r1.Matches(content);
foreach (Match m in matchCollection)
{
    将匹配出来的中国随机替换为世界,地球,宇宙,或不替换(根据随机数判断) , 不能将全部中国替换为一个词.
}



求教如何实现呢?

------解决方案--------------------
Regex.Replace 有一种用法是带 Count 参数的, 传入1可以只替换一个, 多替换几次,每次传入随机的替换字符串.
------解决方案--------------------
           string content="这是中国一个中国二个中国";
            Regex r1 = new Regex(@"中国");
            string  s=r1.Replace(content,"aa",2);
------解决方案--------------------
用正则以“中国”分划数组得string[] ary={"这是","一个","二个"}

然后再用合并,每个单元随机加上世界,地球,宇宙

注意:Regex里有个方法是以正则分划数组的
------解决方案--------------------
            string content = "这是中国一个中国二个中国";
            content = Regex.Replace(content, @"(?<=中国.*?)中国", t =>  "世界,地球,宇宙,中国".Split(',') .OrderBy(tt => Guid.NewGuid()).First());
            Console.WriteLine(content);

------解决方案--------------------
引用:
我也遇到这个问题了,我在想什么方法可以实现先匹配第一次然后替换第一次匹配的结果,再查找匹配再替换,每次用来替换的内容都不一样,但被匹配并且替换的内容都是同一个词,有什么好的方法可以解决呢?

有参数让它只匹配一次啊
------解决方案--------------------
引用:
我也遇到这个问题了,我在想什么方法可以实现先匹配第一次然后替换第一次匹配的结果,再查找匹配再替换,每次用来替换的内容都不一样,但被匹配并且替换的内容都是同一个词,有什么好的方法可以解决呢?


string content="这是中国一个中国二个中国";
Regex r1 = new Regex(@"中国");
string  s=r1.Replace(content,"aa",1); -- 把这个改成一个方法不就行了?“aa”是方法参数。