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

Dan*_*lan 79 java regex intellij-idea

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

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
http://www.regular-expressions.info/replacecase.html
Run Code Online (Sandbox Code Playgroud)

我试过这些但都没有用.举个例子,我想使用正则表达式来改变这个:

private String Name;
private Integer Bar = 2;
Run Code Online (Sandbox Code Playgroud)

对此:

private String name;
private Integer bar = 2;
Run Code Online (Sandbox Code Playgroud)

我试过这样的事情:

replace: private (\S+) (\S+)
with: private $1 $L$2
with: private $1 \L$2
with: <etc.>
Run Code Online (Sandbox Code Playgroud)

他们都没有工作.是否可以在intellij中执行此操作,还是这是一个缺少的功能?这只是出于教育目的,这个例子是人为的.我只是想知道这是否可以在intellij中做到.

des*_*eim 151

在IDEA 15中,您可以使用以下开关切换捕获表达式的大小写.自该版本发布以来,现已正式记录.

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

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

find:(\ w + _)+(\ w +)替换:\ L $ 1 $ 2\E.

以上将转换FOO_BAR_BAZfoo_bar_baz等.$ 1指的是第一个找到的捕获组(在括号中),$ 2指向第二组,等等.

为了后人的缘故:这最初是由@gaoagong 报道在那里记录的.


gao*_*ong 13

搜索了答案然后意识到@ 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程序运行文件即可正确替换它们.


chi*_*nto 6

我开始使用Idea Vim插件并学习在Vim中做这样的事情.通过这种方式,我可以在Idea之外重复使用这些技能.

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

:%s/private\s\(\w*\)\s\(w*\)/private \1 \L\2/g
Run Code Online (Sandbox Code Playgroud)

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

在IDE中

从IDE中查找插件. 在此输入图像描述

  • 巨大的解决方法可能无法帮助99%的人,因为他们不想使用VIM模拟.但是,我碰巧已经安装了这个插件,所以它对我有用:) (2认同)