我可以使用正则表达式在Resharper的自定义模式中查找字符串吗?

mar*_*ica 5 c# regex resharper resharper-9.1

我们的代码库中有很多StringBuilder.AppendFormats,它们的字符串以换行符结尾。我制作了一个名为AppendLineFormat的扩展方法,并希望使用Resharper的“自定义模式”功能来识别和修复那些使用新扩展方法的旧调用(并在将来向其他人推荐这种新扩展方法)。

StringBuilder sb = new StringBuilder();
int i = 1;
sb.AppendFormat("i is {0}\r\n", i);
Run Code Online (Sandbox Code Playgroud)

进入

sb.AppendLineFormat("i is {0}", i);
Run Code Online (Sandbox Code Playgroud)

有没有办法使用正则表达式(替换)来识别匹配的字符串?我不想将每个AppendFormat都转换为AppendLineFormat-仅是那些以\ r \ n结尾的字符串。这是到目前为止我得到的。

搜索模式:

$sb$.AppendFormat($newLineString$,$args$)
Run Code Online (Sandbox Code Playgroud)

替换图案:

$sb$.AppendLineFormat($newLineString$,$args$)
Run Code Online (Sandbox Code Playgroud)

哪里

  • $ sb $是System.Text.StringBuilder类型的表达式
  • $ newLineString $是一个匹配的标识符"(.*)\\r\\n"(完全错误,我知道)
  • $ args $是任意数量的参数

Ant*_*kov 3

不幸的是,目前还不支持。

有很多问题,您可以投票:

作为解决方法,您可以使用 Visual Studio 查找和替换功能。

搜索模式:

\.AppendFormat\(\"(.+?)(?>\\r\\n\")
Run Code Online (Sandbox Code Playgroud)

替换图案:

.AppendLineFormat("$1"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述