-
Pattern表示正则表达式
-
matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,重头开始读取,在大串中去寻找字串
- 案例:
String s = "java带安抚阿富汗发货 爱的哈佛哈hi氟化物 哇大负荷和慰问活动iava17,java18,wdwdjava19";
//Pattern表示正则表达式
//matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,重头开始读取,在大串中去寻找字串
//Pattern p = Pattern.compile("java\\d{0,2}");//获取正则表达式
//获取文本匹配器的对象,m表示文本匹配器对象,s表示大串,p表示规则
//m要在s中寻找符合p规则的小串
// Matcher m= p.matcher(s);
//拿着文本匹配器去重头开始读取,寻找符合规则的子串,有则返回true,在底层记录起始索引和结束索引+1没有返回false
// boolean b = m.find();
//方法底层会根据find方法记录的索引进行字符串的截取
//subString(起始索引,结束索引);包头不包尾
//(0,4),不包括4,最后把截取到的小串返回
// String group = m.group();
//System.out.println(group);
//再次调用,理由同上
//b=m.find();
//String group1 = m.group();
// System.out.println(group1);
//强化
Pattern p= Pattern.compile("java\\d{0,2}");
Matcher m = p.matcher(s);
while (m.find()){
String group2 = m.group();
System.out.println(group2);
- 贪婪爬取:只写+或者*表示贪婪匹配,在Java中默认贪婪爬取,表示尽可能多获取数据
- 非贪婪爬取:只写+?或者*?表示非贪婪匹配,表示尽可能少的获取数据
- 案例:
String str1 = "java自95年以来,经历了许多版本,abbbbbbbbbbbbbbbbaaaaaaaaa现在用得最多的是Java8和JAVA11,因为这两个是长期支持的版本,相信在不久后JAVa17也会登上舞台";
String regex= "ab+";//贪婪爬取:abbbbbbbbb
String regex2= "ab";//非贪婪爬取:ab
Pattern compile = Pattern.compile(regex);
Matcher matcher = compile.matcher(str1);
while (matcher.find()){
String group = matcher.group();
System.out.println(group);
}
Pattern compile1 = Pattern.compile(regex2);
Matcher matcher1 = compile.matcher(str1);
while(matcher.find()){
String group = matcher.group();
System.out.println(group);
}
- 识别正则表达式
- 案例:
//有一段字符串 :小思思adad2w342小丹丹wadam2442小蛋蛋
//需求1:把字符串中3个姓名之间的字母和数字替换为vs
//需求2:把字符串中的3个姓名分割出来
String str ="小思思adad2w342小丹丹wadam2442小蛋蛋";
//方法在底层跟之前一样,也会创建文本解析器对象,然后重头开始去读取字符串中的内容,如果有满足的,则用第二个参数去替换
String vs = str.replaceAll("[\\w&&[^_]]+", "vs");
System.out.println(vs);
//需求2:
String[] split = str.split("[\\w&&[^_]]+");
for (int i = 0; i <split.length ; i++) {
System.out.println(split[i]);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App