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

Tom*_*Tom 88 regex visual-studio-code

我想在Visual Studio代码中使用"搜索和替换" <h1>content</h1>#### content使用正则表达式更改文档中的每个实例 .

我怎么能做到这一点?

Mat*_*eus 144

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

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

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

正如@tpartee建议的那样,如果您想了解更多信息,请参阅以下有关Visual Studio引擎的更多信息:

  • 问题是关于 Visual Studio Code,而这个答案是关于 Visual Studio。 (4认同)
  • Visual Studio将像其他应用程序一样处理正则表达式,唯一的区别是所谓的正则表达式风格,它是正则表达式的"编译器"以及它将如何处理表达式.通常,在这样的答案中它会被忽略,因为它们中的大多数非常相似,但是对于那些仍然想要查看它的人,我已将它添加到答案中 (3认同)
  • @DustinWyatt这适用于两者 (3认同)

ult*_*tle 37

对于初学者,我想添加到已接受的答案中,因为我不清楚一些微妙之处:

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

  1. 在“查找”步骤中,您可以使用带有“捕获组”的正则表达式,例如您的搜索可以是la la la (group1) blah blah (group2),使用括号。

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

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

笔记

  • 要在 Find Widget 中打开 Regex,请单击该.*图标,或按Cmd/Ctrl Alt R

  • $0 指整场比赛

  • 最后,原始问题指出替换应该发生在“文档内”,因此您可以使用打开文档本地的“查找小部件”(CmdCtrl+ F),而不是“搜索”,后者会打开更大的用户界面并查看项目中的所有文件。

  • 在线正则表达式工具对于初学者编写正则表达式也非常有帮助。另外,将 find 与您的正则表达式一起使用,以确保它确实得到您想要的内容,并**在替换全部之前手动替换前几个条目**,以确保结果是您认为的那样。 (3认同)
  • 添加到@silvertiger,这里有两个我每天使用的编辑器:https://regex101.com,https://regexr.com (2认同)

Mic*_* S. 8

例如,如果您想将.json文件中的所有国家/地区代码从大写更改为小写:

Ctrl+h
Alt+r
Alt+c

Find: ([A-Z]{2,})
Replace: $1

Alt+Enter
F1
type: lower -> select toLowerCase
Ctrl+Alt+Enter
Run Code Online (Sandbox Code Playgroud)

示例文件:

[
  {"id": "PL", "name": "Poland"},
  {"id": "NZ", "name": "New Zealand"},
  ...
]
Run Code Online (Sandbox Code Playgroud)