java - 如何使用查找/替换正则表达式在 intellij 中的字符串中的每个 Camel 大小写字符后插入 _ 字符?

标签 java regex intellij-idea

intellij 有一些很好的技巧来查找替换为正则表达式,

我在文件中有这个字符串:

tryingToTurnToConstStandard

我想把它变成:

TRYING_TO_TURN_TO_CONST_STANDARD

我设法把它变成了

TRYINGTOTURNTOCONSTSTANDARD

这样做: enter image description here

意思是我为查找启用了正则表达式,我正在使用正则表达式搜索长度大于 1 的字符:\w+

通过用圆括号括起来来捕获结果

在替换字段中,我使用 $1 定位唯一的组 并用\U\E 包裹它 - 第一个用于大写字母,第二个用于结束大写字母(小写字母相同,只是用\L )

但我找不到如何插入“_”字符并在一次查找/替换中完成所有操作,有什么想法吗?

编辑: 一般情况下我需要它,因为我有多个变量需要这样做,这里有更多示例:

public static final String tryingToTurnToConstStandard = "";
public static final String thisIsAnotherExample = "";
public static final String backToTheFuture = "";
public static final String thisIsAVeryLongVariable = "";

最佳答案

试一试:

搜索:([a-z]+)([A-Z])([a-z]*) 替换:\U$1_$2$3

关于java - 如何使用查找/替换正则表达式在 intellij 中的字符串中的每个 Camel 大小写字符后插入 _ 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517531/

相关文章:

mysql - 无法在 'com.mysql.jdbc.Driver' 中加载 JDBC 驱动程序类 "intellij idea"

java - Java虚拟机中静态方法的调用

java - 使用正则表达式解析文本适用于在线测试,但不适用于此代码

java - 正则表达式作为通过控制台的输入

regex - 匹配给定字符的文本,但不包括 Perl 中单引号内出现的字符

maven - Intellij Run 和 Maven 应用程序 axecuting 之间有什么区别

java - IntelliJ 仅在文件夹中的每个代码都可编译时运行代码

java - 何时使用 thread.interrupt() 以及何时抛出 InterruptedException

java - 为什么在不可序列化的类中声明 transient 变量是合法的?

java - 如何对使用文件锁的 java 方法进行单元测试?