2014-06-10 55 views
44

我GOOGLE了这一点,并发现了如何与其他正则表达式解析器做:如何使用正则表达式在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

是否有你想使用正则表达式的原因? IntelliJ确实有[热键快捷方式](https://stackoverflow.com/questions/5265544/intellij-shortcut-to-convert-code-to-upper-or-lower-case)。 – ajp15243

+0

@ ajp15243这仅仅是为了教育目的,这个例子是人为设计的。我实际上想知道这是否可以在intellij中完成。 –

+3

够公平的!只是想确定。我发现了[IntelliJ正则表达式语法参考](http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html),并且在评论中,有人会问你同样的问题。主持人回答(我认为有点误解),但答案表明,这对IntelliJ的正则表达式语法来说是不可能的。 – ajp15243

回答

78

在IDEA 15你可以使用下面的开关切换捕捉表情的情况。自从此版本发布以来,现在是officially documented

  • \l:降低所述一个下一个字符的情况下
  • \u:了一个下一个字符的情况下
  • \L:降低的下一个字符的情况下,直到一个\E或更换的端部串
  • \U:直到一个\E所述的下一个字符的情况下或替换字符串
  • \E的末尾:标记的端部通过\U\L

从这里开始的情况下,变化是一个例子使用(如文档不清晰):

发现:(\ w + _)+(\ w +) 取代: \大号$ 1 $ 2。\ E

上面将其转换到FOO_BAR_BAZfoo_bar_baz的 $ 1指的是首次发现捕获组(括号中),$ 2到第二组,等等

为了后代的缘故:这是由@gaoagong最初reported和记录there

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

+1

根据youtrack,这是IntelliJ版本15中添加 –

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

+1

巨大的解决方法,可能不会帮助99%的人在这里,因为他们不想使用VIM模拟。但是,我碰巧已经安装了这个插件,所以它适用于我:) –

+0

我知道。对于使用IDE的任何人来说,Vi和Vim在开始时似乎都是无用的。我最终在服务器中遇到他们之后开始学习Vi。我现在有点喜欢它,因为我在工具之间移动时不必切换心态。 – chinto

+0

我刚刚开始使用它,并不流利。您认为使用IDEAVim编辑Intellij-IDEA的效率高于使用Vi之前的效率吗? –

相关问题