用正则表达式替换字符串并保留其中的一些内容

时间:2013-04-15 12:58:42

标签: regex visual-studio-2012

在我的代码中,我有这样的陈述:

 Project.MVC.Bll.Resources.<resource-name>

我想用

替换它们
 ProjectResources.GetString("<resouce-name>")

我想使用Visual Studio Find和Replace with regular expression,但问题是我不知道如何“获取”资源名称。

对于我正在使用Project.MVC.Bll.Resources.*的搜索模式,但我不知道替换模式是什么,以便将资源名称放在括号中。

1 个答案:

答案 0 :(得分:3)

您正在寻找的构造称为captures(或有时是捕获组)。有一个如何做到here的例子。还有一个关于这个主题的MSDN页面:Using Regular Expressions in Visual Studio以及使用编号捕获的示例。

另外值得指出的是,早期版本的Visual Studio使用了slightly different syntax

在您的情况下,捕获可能看起来像

Project\.MVC\.Bll\.Resources\.(?<name>____) 

的替换
ProjectResources.GetString("${name}")

只需用您的资源名称所遵循的模式替换____即可。另请注意,.在RegEx中意味着任何字符,因此您需要将它们转义为仅匹配句点。