VS Code Regex 查找并替换为小写,如果可能,请使用 \l 或 \L

Gís*_*son 28 visual-studio-code intellij-15

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

编辑:明确地说,我已经知道谁可以找到匹配项。但是寻找该功能以将所有大写匹配替换为小写匹配

Mar*_*ark 44

支持大小写修饰符 \L\l\U\u查找/替换(从1.47构建为编辑器替换字符串,并从构建1.49它也可以在查找跨越工作空间/替换(见https://github.com/microsoft /vscode/pull/105101 ))。

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

\l$1 参见regex101 演示 1

或者只是把 \L放在前面,就像\L(其余的在这里替换)。参见regex1010 演示 2


请注意,这些修饰符的工作方式与您习惯的方式略有不同。例如:

(de)(pth) 搜索

\U$1$2 代替

DEPTH 预期结果

DEpth vscode 结果

case 修饰符仅适用于直接捕获组。 ,直到它遇到\E或结尾部分替换字符串。

我认为出于同样的原因\E没有实施在 vscode 中根本,因为鉴于仅修改了直接捕获组,这将无关紧要。

因此,要获得DEPTH结果,您应该使用\U$1\U$2.

修饰符也可以堆叠 - 例如,\u\u\u$1将组的前 3 个字符大写,或\l\U$1将第一个字符小写,其余字符大写。

目前,这些仅在编辑器的查找小部件中受支持,而不在“在文件中查找”中受支持。


rio*_*oV8 35

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

如果您只想修改匹配文本的一部分,则必须额外执行 1 步。

如果您在“查找”对话框中按Ctrl+ Shift+ L,它会选择完整的匹配文本,但您无法移动(多)光标并进行部分选择。

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

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

或者

  • Alt+ Enter(“查找”对话框中)

现在您可以移动(多)光标并进行部分选择并应用所需的变换。