java基础--正则表达式
java基础--正则表达式
用一种模式去匹配字符文本的公式
底层实现
matchar对象的属性 int[] grougs; grougs数组主要记录匹配到原始字符串的索引值,使用groug方法来获取子字符串,groug(0)代表匹配到的字符串,groug(1)groug(2)...代表正则捕获分组子内容,groug也支持分组命名方式获取,但是前提是你在正则中要命名 (?
相关类
- Pattern
- 没有共有的构造器,通过类静态方法来生成正则表达式对象:compile(Sting Regex)
- Matcher
- 没有公有的构造器,通过Pattern类对象的方法生成匹配器对象:matcher(String context)
应用
-
使用细节可以参考韩老师视频细节
-
java中正则转义符要使用\,一共两个
-
反向引用
主要利用分组、捕获的内容进行反向引用,内部反向引用使用 \\分组号,外部引用使用 $分组号
//匹配两个连续的的相同数字 (\\d)\\1 //匹配5225,1551 (\\d)(\\d)\\2\\1 //处理经典的结巴程序 String context = "我我想想想学学学学Java" context = Pattern.compile("(.)\\1+").matcher(context).replaceAll("$1");
-
String类使用正则
- replaceAll(String regex, String replacement) 替换
- matches(String regex) 判断
- split(String regex) 分割
- contains(String str) 它不适用于正则表达式。它将检查指定的确切字符串是否出现在当前字符串中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?