Visual Studio代码搜索并用正则表达式替换


116

我想在Visual Studio Code中使用“搜索并替换” <h1>content</h1>#### content使用正则表达式将to的每个实例更改 为一个文档。

我该怎么做?


2
是否必须找到并替换正则表达式?您可以先替换<h4>#### ,然后替换</h4>''吗?
Brett East

Answers:


190

那么,您的目标是搜索和替换?
根据官方Visual Studio的键盘截图pdf,可以Ctrl + HWindowsLinux⌥⌘F上按,在Mac上按可以启用搜索和替换工具:

Visual Studio代码的“搜索和替换”选项卡 如果您要禁用代码,则只需<h1>进行搜索,然后替换为####

但是,如果您想改用此正则表达式,则可以在图标中启用它:。*并使用regex:<h1>(.+?)<\/h1>并替换为:#### $1

正如@tpartee所建议的,如果您想了解更多信息,那么这里是有关Visual Studio引擎的更多信息:


3
Visual Studio将像处理其他所有应用程序一样处理正则表达式,唯一的区别是所谓的正则表达式风味,它是正则表达式的“编译器”以及如何处理表达式。通常,在这样的答案中它会被忽略,因为它们中的大多数都非常相似,但是对于那些仍想检查出来的人,我已经将其添加到答案中
-Mateus

2
问题是关于Visual Studio代码,而这个答案是关于Visual Studio。
达斯汀·怀亚特

1
或更改您的键盘绑定。示例:通过IDEA键绑定(marketplace.visualstudio.com/…),您可以使用:Ctrl + Shift + R表示“替换路径”或“查找路径”:Ctrl + Shift + F
SL5net

6

对于初学者,我想补充一下已接受的答案,因为我不清楚其中有一些微妙之处:

要查找和修改文本(不能完全替换),

  1. 在“查找”步骤中,可以将正则表达式与“捕获组”一起使用,例如la la la (group1) blah blah (group2),使用括号可以进行正则表达式搜索。

  2. 然后在“替换为”步骤中,您可以通过参考捕获组$1$2等等。

因此,例如,在这种情况下,我们可以找到仅带有<h1>.+?<\/h1>(不带括号)的相关文本,但是放入括号后<h1>(.+?)<\/h1>,就像替换步骤一样$1,我们可以引用它们之间的子匹配项。凉!

笔记

  • 要在“查找小部件”中打开正则表达式,请单击.*图标,或按Cmd/Ctrl Alt R

  • $0 指整个比赛

  • 最后,原始问题指出替换应该在“文档内”进行,因此您可以使用“ Find Widget”(CmdCtrl+ F)(对于打开的文档而言是本地的),而不是“ Search”,后者可以打开较大的UI并查看项目中的所有文件。


0

确保使用“使用正则表达式”选择了“区分大小写”,以便匹配。[AZ] *如果未选择大小写,则匹配所有字母。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.