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

时间:2014-06-10 20:08:54

标签: java regex intellij-idea

我已经搜索了这个并找到了如何处理其他正则表达式解析器:

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中是否可以这样做。

3 个答案:

答案 0 :(得分:134)

在IDEA 15 中,您可以使用以下开关来切换捕获的表达式的大小写。自从此版本发布以来,现在是officially documented

  • \l:降低下一个字符的大小写
  • \u:以下一个角色
  • 为例
  • \L:降低下一个字符的大小写直到\E或替换字符串的结尾
  • \U:直到\E或替换字符串末尾的下一个字符的情况
  • \E:标记由\U\L
  • 发起的案例更改的结束

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

  

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

以上内容会将FOO_BAR_BAZ转换为foo_bar_baz等 $ 1表示第一个找到的捕获组(括号中),$ 2表示第二组等等。

为了后人的缘故:@gaoagong最初reported并记录there

答案 1 :(得分:13)

搜索答案,然后意识到@ ajp15243已经回答了上述问题。 Intellij目前无法使用正则表达式替换功能来更改字母大小写。以下网址简要讨论了该功能。

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程序运行文件即可正确替换它们。

答案 2 :(得分:5)

我开始使用Idea Vim插件并学习在Vim中做这样的事情。这样我就可以在Idea之外重复使用这些技能。

这是执行你要求的vim命令。

:%s/private\s\(\w*\)\s\(w*\)/private \1 \L\2/g

在IDE中输入正则表达式。需要额外的斜杠才能将正则表达式模式转义为Vim。

Within The IDE

从IDE中查找插件。 enter image description here