Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Intellij IDEA中,如何使用正则表达式将大写替换为小写?_Java_Regex_Intellij Idea - Fatal编程技术网

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

Java 在Intellij IDEA中,如何使用正则表达式将大写替换为小写?,java,regex,intellij-idea,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;

我在谷歌上搜索了这个,并找到了如何使用其他正则表达式解析器:

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.>
replace:private(\S+)(\S+)
带:私人$1$L$2
使用:专用$1\L$2
与:

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

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

您也可以在此处投票支持Youtrack发行版中的功能:

有一个regex Intellij插件,但可惜的是,它也不支持下外壳和上外壳

您可能只需要通过perl程序运行这些文件就可以正确地替换它们。

我开始使用插件,并学习在Vim中执行类似的操作。这样我就可以在想法之外重复使用这些技能

下面是执行您要求的操作的vim命令

:%s/private\s\(\w*\)\s\(w*\)/private \1 \L\2/g
正在IDE中输入正则表达式。需要额外的斜杠才能将正则表达式模式转义到Vim中

从IDE中查找插件。
在IDEA 15中,您可以使用以下开关切换捕获表达式的大小写。这是自该版本发布以来的最新版本

  • \l
    :降低下一个字符的大小写
  • \u
    :递增下一个字符的大小写
  • \L
    :降低下一个字符的大小写,直到
    \E
    或替换字符串结束
  • \U
    :递增下一个字符的大小写,直到出现
    \E
    或替换字符串结束
  • \E
    :标记由
    \U
    \L
下面是一个示例用法(因为文档不清楚):

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

上述操作将
FOO_BAR_BAZ
转换为
FOO_BAR_BAZ
等 $1表示找到的第一个捕获组(括号中),$2表示第二个捕获组,以此类推


为了子孙后代:这最初是由@gaoagong编写的,并有文档记录。

您想使用正则表达式有什么原因吗?IntelliJ确实有这样做的理由。@ajp15243这只是出于教育目的,这个例子是人为的。我真的很想知道这在intellij中是否可行。足够公平!只是想确定一下。我发现了,在评论中,有人想问和你一样的问题。一位主持人回答(我认为有点误解),但回答表明IntelliJ的正则表达式语法不可能做到这一点。你可以为此编写一个插件。巨大的解决方案可能不会帮助99%的人,因为他们不想使用VIM仿真。但是,我碰巧已经安装了这个插件,所以它适合我:)我知道。。对于任何使用IDE的人来说,Vi和Vim在一开始似乎都是无用的。在服务器上遇到它们之后,我最终开始学习Vi。我现在有点喜欢它,因为我不必在工具之间转换思维。我只是刚刚开始,还不流利。您认为使用IDEAVim进行Intellij IDEA编辑比使用Vi之前更高效吗?越来越多。。我以前对eclipse很在行。然后转到Intellij学习了它的大部分技巧。然后意识到学习Vim将使我在服务器和工作站上同时表现出色。我还看到Vim在文本操作和导航方面功能强大得多。我仍然使用IDE快捷方式来处理所有IDE特性,如重构、查找引用和转到def等。不过,在模式之间切换是非常困难的。这对于知道如何使用vi的人来说是一个很好的解决方案。当我需要进行复杂的替换时,我会打开IdeaVim,然后再次退出以享受Idea自己的编辑器功能。我希望IdeaVim有一个指示器来显示它何时处于活动状态