VS Code 正则表达式查找并替换为小写字母,如果可能,使用 \l 或 \L

VS Code Regex find and replace with lowercase, use \l or \L if possible

有没有办法查找并用小写字符替换(正则表达式)匹配字符串中的所有大写字符?最好在 VS Code 或 IntelliJ 中 我已经准备好正则表达式了。

编辑:明确地说,我已经知道找谁匹配。但是寻找那个函数来用小写匹配替换所有大写匹配

  • Ctrl + F
  • Select .* 按钮并输入您的 RegEx
  • Ctrl + Shift + L (Windows) 或 Cmd + Shift + L (Mac) to select 所有匹配的结果
  • Ctrl + Shift + P (Windows) 或 Cmd + Shift + P (Mac)
  • 选择Transform to Lowercase

如果您只想修改部分匹配文本,则需要多做 1 步。

如果您在“查找”对话框中按 Ctrl + Shift + L select 是完整的匹配文本,但您不能移动(多)光标并创建部分 selection。

输入正则表达式后,VSC 将显示哪些部分与查找结果匹配。

  • 单击文件中的某处
  • Ctrl + Shift + L(Select全部)

  • Alt + Enter 查找对话框中)

现在您可以移动(多)光标并制作部分 selection 并应用所需的变换。

支持大小写修饰符 \L\l\U\u Find/Replace(来自 Build 1.47,用于在编辑器中替换字符串,并且从 Build 1.49 开始,它也可以在整个工作区的 Find/Replace 中工作(参见 https://github.com/microsoft/vscode/pull/105101))。

所以你只需要把 \l 修饰符放在所有匹配的大写组前面,比如

\l 参见 regex101 demo1

或者只是将 \L 放在所有的前面,例如 \L(此处替换其余部分)。见 regex1010 demo2


请注意,这些修饰符的作用与您可能习惯的略有不同。例如:

(de)(pth) 搜索

\U 替换

DEPTH 预期结果

DEpth vscode 结果

大小写修饰符仅适用于 立即 捕获组。 直到遇到 \E 或替换字符串的末尾才

出于同样的原因,我假设 \E 根本没有在 vscode 中实现 ,因为它是无关紧要的,因为只有立即捕获群组已修改。

因此,要获得 DEPTH 作为结果,您应该使用 \U\U.

The modifiers can also be stacked - for example, \u\u\u will uppercase the first 3 characters of the group, or \l\U 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".