如何在Intellij IDEA中使用正则表达式将大写字母替换为小写字母?

2022-08-31 09:55:34

我已经用谷歌搜索了这个,并发现了如何使用其他正则表达式解析器:

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
http://www.regular-expressions.info/replacecase.html

我已经尝试过这些,但都不起作用。例如,我想使用正则表达式来更改它:

private String Name;
private Integer Bar = 2;

对此:

private String name;
private Integer bar = 2;

我尝试了这样的东西:

replace: private (\S+) (\S+)
with: private $1 $L$2
with: private $1 \L$2
with: <etc.>

它们都不起作用。是否可以在 intellij 中执行此操作,或者这是一个缺少的功能?这只是为了教育目的,这个例子是人为的。我只是想知道这是否有可能在intellij中完成。


答案 1

在 IDEA 15 中,您可以使用下面的开关来切换捕获表达式的大小写。自此版本发布以来,现在已经正式记录了这一点。

  • \l:降低下一个字符的大小写
  • \u:上一个下一个字符的大小写
  • \L:降低接下来字符的大小写,直到替换字符串的 a 或结尾\E
  • \U:向上排列下一个字符的大小写,直到替换字符串的 a 或结尾\E
  • \E:标记由 或 发起的案例更改的结束\U\L

下面是一个示例用法(因为文档不清楚):

查找: (\w+_)+(\w+) 替换: \L$1$2\E

以上将转换为 etc $1 表示第一个找到的捕获组(在括号中),$2 表示第二个捕获组,依此类推。FOO_BAR_BAZfoo_bar_baz

为了后代的缘故:这最初是由@gaoagong报道的,并在那里记录下来。


答案 2

搜索答案,然后意识到@ajp15243已经回答了上面的问题。目前在 Intellij 中无法使用其正则表达式替换功能来更改字母的大小写。以下 URL 中有关于该功能的简短讨论。

http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html

您也可以在此处为Youtrack问题中的功能投票:

http://youtrack.jetbrains.com/issue/IDEA-70451

有一个正则表达式Intellij插件,但遗憾的是它也不支持下部和上部大小写。

http://plugins.jetbrains.com/plugin/19?pr=idea

您可能只需要通过perl程序运行文件即可正确替换它们。