有没有一种方法可以在匹配的字符串中使用正则表达式查找和替换所有大写字母为小写字母?最好在VS Code或IntelliJ中执行。我已经准备好我的正则表达式。
编辑:明确一点,我已经知道如何找到匹配项。但是我正在寻找用于替换所有大写匹配项为小写匹配项的函数。
有没有一种方法可以在匹配的字符串中使用正则表达式查找和替换所有大写字母为小写字母?最好在VS Code或IntelliJ中执行。我已经准备好我的正则表达式。
编辑:明确一点,我已经知道如何找到匹配项。但是我正在寻找用于替换所有大写匹配项为小写匹配项的函数。
在编辑器中替换字符串(从版本1.47开始)和跨工作区查找/替换(从版本1.49开始,详见https://github.com/microsoft/vscode/pull/105101)支持大小写修改器\L
、\l
、\U
和\u
。
因此,您只需要在所有匹配的大写组前面加上\l
修改器,例如:
\l$1
请参见regex101演示1
或者将\L
放在所有替换内容的前面,例如:\L
(rest of replace here)。请参见regex101演示2
请注意,这些修改器的使用方式与您可能习惯的方式有所不同。例如:
(de)(pth)
搜索
\U$1$2
替换
预期结果: DEPTH
vscode结果: DEpth
大小写修改器仅对立即的捕获组起作用,直到遇到\E
或替换字符串的末尾才生效。
我认为出于同样的原因,\E
未在vscode中实现,因为它对只修改立即捕获组这一事实毫无意义。
DEPTH
,你应该使用\U$1\U$2
。\u\u\u$1
将大写组的前三个字符,或者\l\U$1
将第一个字符小写,其余大写。.*
按钮并输入你的正则表达式Transform to Lowercase
如果你只想修改某些匹配到的文本,需要额外执行一步。
如果在查找对话框中按下 Ctrl + Shift + L,它将选择完整的匹配文本,但你不能移动光标并进行部分选择。
输入正则表达式后,VSC会显示哪些部分会匹配到查找内容。
或者
现在你可以移动光标并进行部分选择,然后应用所需的转换。
Ctrl
+ Shift
+ L
时,我收到了这个消息:光标数量已被限制为10000。
- zwl