如何在C#中将一个单词的所有实例替换为另一个单词

时间:2017-12-21 01:25:46

标签: c#

如何在C#中用另一个单词替换所有单词实例?是否有RegexOption指定在Perl中替换所有实例,例如/g

的Perl:

$line = "Oranges and Apples.  Apples and Oranges";
$line =~ s/Oranges/Pears/g;

C#:

string line = "Oranges and Apples.  Apples and Oranges";
line = Regex.Replace(line, @"Oranges", "Pears", ????);

我缺少的部分由C#代码段中的????表示。

1 个答案:

答案 0 :(得分:4)

在C#中,Regex.Replace函数是隐式全局的,因此它等效于Perl中的g修饰符。您不需要任何RegexOptions,因为Perl替换上没有其他标志。

line = Regex.Replace(line, "Oranges", "Pears");

如果由于某种原因不想要全局行为,则需要使用实例,而不是静态方法:

 line = (new Regex("Oranges")).Replace(line, "Pears", 1);

但是你应该在这个具体案例中使用String.Replace(),因为这不是一个模式:

line = line.Replace("Oranges", "Pears");