String.replaceAll()方法正则表达式应用解析详解?

2026-06-10 12:371阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1283个文字,预计阅读时间需要6分钟。

String.replaceAll()方法正则表达式应用解析详解?

前言:我通常不太关心代码的具体实现,因为我的开发语言很复杂,我更倾向于用一些最简单通用的方式去解决问题。今天在群里看到一位朋友分享的Java代码,感觉自己的代码还是太局限了。

前言

我通常是不太关心代码的具体实现的,因为我的开发语言很杂,倾向于一些最简单通用的方式去解决。今儿不小心在群里看到一位朋友发了下面的java代码,感觉自己还是很局限很无知的:

String str1 = "createTime"; String str2 = "createTimeAt"; String regex = "([A-Z])+"; System.out.println(str1.replaceAll(regex, "_$1").toLowerCase()); System.out.println(str2.replaceAll(regex, "_$1").toLowerCase()); //result //create_time //create_time_at

通过输出可以看到,这段代码的作用是把驼峰命名格式的字符串替换成下划线分割,这个功能比较简单,但是吸引我的却是他的代码。

"createTime".replaceAll("([A-Z]+)","_$1")

这行代码简单的很,就是调用了String类的replaceAll方法,方法的第一个参数是正则表达式,第二个参数是将要被替换成的新值。

让我惊奇的是他代码中,replaceAll的第二个参数,也就是JDK文档中名为replacement的参数,竟然是_$1。这是什么鬼?还支持类似占位符这样的东西?我一直都不知道。

阅读全文

本文共计1283个文字,预计阅读时间需要6分钟。

String.replaceAll()方法正则表达式应用解析详解?

前言:我通常不太关心代码的具体实现,因为我的开发语言很复杂,我更倾向于用一些最简单通用的方式去解决问题。今天在群里看到一位朋友分享的Java代码,感觉自己的代码还是太局限了。

前言

我通常是不太关心代码的具体实现的,因为我的开发语言很杂,倾向于一些最简单通用的方式去解决。今儿不小心在群里看到一位朋友发了下面的java代码,感觉自己还是很局限很无知的:

String str1 = "createTime"; String str2 = "createTimeAt"; String regex = "([A-Z])+"; System.out.println(str1.replaceAll(regex, "_$1").toLowerCase()); System.out.println(str2.replaceAll(regex, "_$1").toLowerCase()); //result //create_time //create_time_at

通过输出可以看到,这段代码的作用是把驼峰命名格式的字符串替换成下划线分割,这个功能比较简单,但是吸引我的却是他的代码。

"createTime".replaceAll("([A-Z]+)","_$1")

这行代码简单的很,就是调用了String类的replaceAll方法,方法的第一个参数是正则表达式,第二个参数是将要被替换成的新值。

让我惊奇的是他代码中,replaceAll的第二个参数,也就是JDK文档中名为replacement的参数,竟然是_$1。这是什么鬼?还支持类似占位符这样的东西?我一直都不知道。

阅读全文