如何按示例查找和替换(预览)

“查找和替换”功能可用于执行一些重构操作,但除了最简单的情况外,你将发现需要编写正则表达式才能完成任务。 而你可能对该表达式的编写和调试不太熟悉。 幸运的是,“按示例查找和替换”功能可使用想要进行的更改示例代为创建该表达式。 此外,你无需理解正则表达式就能使用它;Visual Studio 会生成一个或多个可能的表达式,如果你在查找/替换操作中应用了此表达式,则你可预览会发生的更改。

提供前后状态示例

只需直接在“查找和替换”字段中提供所需状态前后情况示例即可。

可在“查找和替换”控件“在文件中查找并替换”对话框中执行此操作。

找到模式后,Visual Studio 将在查找/替换控件中的“替换”字段旁边显示一个灯泡来告知你;单击该灯泡将显示在列表中检测到的一组模式匹配项。 悬停鼠标或导航浏览该列表会显示它将进行的更改的预览,你只需点击 Enter 提交建议的正则表达式,然后如同你自己编写的一样在查找/替换中使用它即可。

演练 - 亲自试用一下“按示例查找和替换”功能

注意

立即试用:可克隆此存储库并打开 Program.cs,立即试用以下示例

在 program.cs 文件中,你将找到许多如下所示的硬编码公式示例:

Find replace by example code before

假设你想要将整个公式替换为对同一变量名称的帮助程序函数的调用,如下所示:

Find replace by example code after

请记住,有多个位置可替换为多个变量名称。

你只需要在“查找和替换”框中提供如下所示的示例,无论是在“查找和替换”控件还是“在文件中查找并替换”对话框中均可 - 下例使用的是控件。

Find replace by example find box and replace control populated and suggestions found

这样操作后,“替换”框的旁边将显示灯泡图标,告知你 Visual Studio 已找到符合你的情况的基于模式的查找/替换选项。

  1. 单击灯泡来显示 Visual Studio 为你检测到的可能的模式
  2. 从可能的模式列表中选择一种 - 可在列表中选择每种模式来预览它的效果,只将鼠标悬停在列表项上也可预览效果

Find replace by example list of suggestions found

  1. 按 Enter 或通过单击来选择一种模式 - 现将在正则表达式查找/替换中使用你选择的匹配项(如果所选内容不是你需要的内容,你可随时通过灯泡返回到原始搜索 - 只需从弹出菜单中选择“原始文本”即可)

  2. 选择模式后,得到的用于查找和替换的正则表达式将插入到“查找”对话框中,而且将切换到正则表达式搜索模式。 现在,你可像往常一样导航浏览和执行替换项,从而执行在文档中更改实例等操作。 你将看到所有匹配项都在编辑器中突出显示,便于你在其间导航浏览。

Find replace by example matches and regular expression shown