我已经搜索了这个并找到了如何处理其他正则表达式解析器:
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中是否可以这样做。
答案 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表示第二组等等。
答案 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。
从IDE中查找插件。