9

假设我想使用正则表达式在字符串中的每个单词之前添加“test”。

string MyText="hello world"
string Pattern = "\w+";

我可以这样做:

Regex.Replace(MyText, Pattern, "test$&")

或这个:

Regex.Replace(MyText, Pattern, m=>"test"+m.Value)

我会得到相同的结果,那么 lambda 表达式中的 $& 和 Value 有什么区别?如果结果没有差异,是否存在性能问题?

4

1 回答 1

1

Lambda 是匿名方法,其工作方式与常规方法相同。您的示例中声明的内容等效于: string Convert(RegexMatch match) { return "test" + match.Value; }。与使用第一个示例中使用的 Regex 表达式相比,使用此语法可以让您获得更丰富的可能性。

于 2013-08-16T10:42:46.537 回答