java正则表达式(find()和 matches())
1.find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。 matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。 2.Pattern pattern= Pattern.compile(".*?,(.*)"); Matcher matcher = pattern.matcher(result); if (matcher.find()) { return matcher.group(1); } 3.详解: matches public static boolean matches(String regex, CharSequence input) 编译给定正则表达式并尝试将给定输入与其匹配。 调用此便捷方法的形式 Pattern.matches(regex, input); Pattern.compile(regex).matcher(input).matches() ; 如果要多次使用一种模式,编译一次后重用此模式比每次都调用此方法效率更高。 参数: regex - 要编译的表达式 input - 要匹配的字符序列 抛出: PatternSyntaxException - 如果表达式的语法无效 find public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。 此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。 如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 matcher.start() 返回匹配到的子字符串在字符串中的索引位置. matcher.end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. matcher.group()返回匹配到的子字符串 返回: 当且仅当输入序列的子序列匹配此匹配器的模式时才返回 true。 4.部分JAVA正则表达式实例 ①字符匹配 Pattern p = Pattern.compile(expression); // 正则表达式 Matcher m = p.matcher(str); // 操作的字符串 boolean b = m.matches(); //返回是否匹配的结果 System.out.println(b); Pattern p = Pattern.compile(expression); // 正则表达式 Matcher m = p.matcher(str); // 操作的字符串 boolean b = m. lookingAt (); //返回是否匹配的结果 System.out.println(b); Pattern p = Pattern.compile(expression); // 正则表达式 Matcher m = p.matcher(str); // 操作的字符串 boolean b = m..find (); //返回是否匹配的结果 System.out.println(b); ②分割字符串 Pattern pattern = Pattern.compile(expression); //正则表达式 String[] strs = pattern.split(str); //操作字符串 得到返回的字符串数组 ③替换字符串 Pattern p = Pattern.compile(expression); // 正则表达式 Matcher m = p.matcher(text); // 操作的字符串 String s = m.replaceAll(str); //替换后的字符串 ④查找替换指定字符串 Pattern p = Pattern.compile(expression); // 正则表达式 Matcher m = p.matcher(text); // 操作的字符串 StringBuffer sb = new StringBuffer(); int i = 0; while (m.find()) { m.appendReplacement(sb, str); i++; //字符串出现次数 } m.appendTail(sb);//从截取点将后面的字符串接上 String s = sb.toString(); ⑤查找输出字符串 Pattern p = Pattern.compile(expression); // 正则表达式 Matcher m = p.matcher(text); // 操作的字符串 while (m.find()) { matcher.start() ; matcher.end(); matcher.group(1); }
补充:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2019-06-24 @TransactionConfiguration过时与替代写法
2016-06-24 Debug:This kind of launch is configured to openthe debug perspective when it解决办法
2015-06-24 Java 泛型数组
2015-06-24 JAVA中list,set,数组之间的转换详解
2015-06-24 JAVA字符串格式化-String.format()的使用
2015-06-24 二维码原理简介