Java正则表达式之全量匹配和部分匹配
一,前言
我们在用String.matches()的时候发现字符串中有能匹配的地方却返回为false。如:
String abc = "regex.1234561";
boolean matches = abc.matches("^[a-z]{4}.[0-9]+$");得到matches为false。但我们在一些在线测试正则匹配中可以看到如下

所以这里我们就需要知道java正则的匹配形式是有区分的。
二,全量匹配
顾名思义,就是指整个字符串必须全部符合你正则表达式才能返回为true。就是我们熟知的String.matches("正则")。
String abc = "regex.1234561";
boolean matches = abc.matches("^[a-z]{5}.[0-9]+$");
// 输出该结果为true
System.out.println(matches);三,部分匹配
相对于全量匹配,我们只提取字符串中符合正则的部分。java中当然也有此类方法。方法如下:
String abc = "regex.1234561";
Pattern pattern = Pattern.compile("[a-z]{4}.[0-9]+");
Matcher matcher = pattern.matcher(abc);
while (matcher.find()) {
// 得到符合的匹配egex.1234561
System.out.println(matcher.group());
}四,补充
我们常用的String.replaceAll(regex, replaceStr);中其实也是用的是部分匹配进行的替换
String abc = "regex.1234561";
String all = abc.replaceAll("[0-9]{3}", "****");
// 输出结果为regex.********1
System.out.println(all);总结
到此这篇关于Java正则表达式之全量匹配和部分匹配的文章就介绍到这了,更多相关Java正则匹配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何使用eclipse搭建maven多module项目(构建父子项目)
这篇文章主要介绍了如何使用eclipse搭建maven多module项目(构建父子项目) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-12-12
SpringBoot中使用EasyExcel并行导出多个excel文件并压缩zip后下载的代码详解
SpringBoot的同步导出方式中,服务器会阻塞直到Excel文件生成完毕,在处理大量数据的导出功能,本文给大家介绍了SpringBoot中使用EasyExcel并行导出多个excel文件并压缩zip后下载,需要的朋友可以参考下2024-09-09


最新评论