Visual Studio Code Search and Replace with Regular Expressions
I want to use "Search And Replace" in Visual Studio Code to change every instance of <h1>content</h1>
to #### content
within a document using a Regular Expression.
How can I accomplish that?
Solution 1:
So, your goal is to search and replace?
According to Visual Studio Code's keyboard shortcuts PDF, you can press Ctrl + H on Windows and Linux, or ⌥⌘F on Mac to enable the search and replace tool:
If you mean to disable the code, you just have to put <h1>
in search, and replace to ####
.
But if you want to use this regex instead, you may enable it in the icon: and use the regex: <h1>(.+?)<\/h1>
and replace to: #### $1
.
And as @tpartee suggested, here is some more information about Visual Studio's engine if you would like to learn more:
- Find and Replace Window (documentation)
- Quick Replace, Find and Replace Window (documentation)
- What flavor of Regex does Visual Studio Code use?
Solution 2:
For beginners, I wanted to add to the accepted answer, because a couple of subtleties were unclear to me:
To find and modify text (not completely replace),
In the "Find" step, you can use regex with "capturing groups," e.g. your search could be
la la la (group1) blah blah (group2)
, using parentheses.And then in the "Replace" step, you can refer to the capturing groups via
$1
,$2
etc.
So, for example, in this case we could find the relevant text with just <h1>.+?<\/h1>
(no parentheses), but putting in the parentheses <h1>(.+?)<\/h1>
allows us to refer to the sub-match in between them as $1
in the replace step. Cool!
Notes
To turn on Regex in the Find Widget, click the
.*
icon, or pressCmd/Ctrl
Alt
R
$0
refers to the whole matchFinally, the original question states that the replace should happen "within a document," so you can use the "Find Widget" (
Cmd
orCtrl
+F
), which is local to the open document, instead of "Search", which opens a bigger UI and looks across all files in the project.