There is support for the case modifiers \L
, \l
, \U
and \u
Find/Replace (from Build 1.47 for replacing strings in an editor, and from Build 1.49 it also works in the Find/Replace across the workspace (see https://github.com/microsoft/vscode/pull/105101)).
So you just have to put the \l
modifier in front of all your matched uppercase groups, like
\l$1
see regex101 demo1
or just put the \L
in front of it all, like \L
(rest of replace here). see regex1010 demo2
Note that these modifiers work a little differently than you might be used to. For instance:
(de)(pth)
Search
\U$1$2
Replace
DEPTH
expected result
DEpth
vscode result
The case modifier only works on the immediate capture group. Not until it encounters \E
or the end of the replace string.
I assume for this same reason \E
isn't implemented in vscode at all, as it would be irrelevant given that only the immediate capture group is modified.
So to get DEPTH
as the result you should use \U$1\U$2
.
The modifiers can also be stacked - for example, \u\u\u$1
will
uppercase the first 3 characters of the group, or \l\U$1
will
lowercase the first character, and uppercase the rest.
Currently, these are only supported in the editor's find widget, and
not in "Find in Files".