5

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

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

进入

sb.AppendLineFormat("i is {0}", i);

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

搜索模式:

$sb$.AppendFormat($newLineString$,$args$)

替换模式:

$sb$.AppendLineFormat($newLineString$,$args$)

在哪里

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

1 回答 1

2

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

有一堆问题,你可以投票给他们:

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

搜索模式:

\.AppendFormat\(\"(.+?)(?>\\r\\n\")

替换模式:

.AppendLineFormat("$1"

在此处输入图像描述

于 2015-11-16T15:14:41.260 回答