import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author
* @create 2021-12-06 21:02
*/
public class RegExp {
public static void main(String[] args) {
String content = "1998年12月8日,第二代Java平台的企业版J2EE发布。" +
"1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本" +
":J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、" +
"无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版)," +
"应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版)," +
"应用于基于Java的应用服务器。Java 2平台的发布," +
"是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。9999";
//匹配所有四个数字
//说明:
// \\d:表示任意0-9 的数字 ,此处4个,表示连续在一起的四个数,
// 如果有超过连续4个的数字,只会截取前四位
String regStr = "\\d\\d\\d\\d";
//创建模式对象 正则表达式对象
Pattern compile = Pattern.compile(regStr);
//创建匹配器 matcher
//按照正则表达式的规则去匹配content字符转
Matcher matcher = compile.matcher(content);
//开始匹配
//matcher.find():会记录匹配到的字符串,开始位置索引 groups[0]=开始位置 与 结束位置索引+1 groups[1]=结束位置+1
while (matcher.find()) {
//matcher.group(0) 拿到开始位置与结束位置,去content字符串中截取
//subString (0,4),(开始索引,结束索引+1)
System.out.println(matcher.group(0));
}
}
}
?分组()
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author
* @create 2021-12-06 21:02
*/
public class RegExp {
public static void main(String[] args) {
String content = "1998年12月8日,第二代Java平台的企业版J2EE发布。" +
"1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本" +
":J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、" +
"无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版)," +
"应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版)," +
"应用于基于Java的应用服务器。Java 2平台的发布," +
"是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。999999";
//匹配所有四个数字
//说明:
// \\d:表示任意0-9 的数字 ,此处4个,表示连续在一起的四个数,
// 如果有超过连续4个的数字,只会截取前四位
String regStr = "(\\d\\d)(\\d\\d)";
//创建模式对象 正则表达式对象
Pattern compile = Pattern.compile(regStr);
Matcher matcher = compile.matcher(content);
while (matcher.find()) {
//如果正则表达式有()就表示分组
//取出匹配规则如下
//group[0],表示匹配到的子字符串(整体)
//group[1]表示匹配到的子字符串(第一组)
//group[2]表示匹配到的子字符串(第二组)
//........
System.out.println("整体"+matcher.group(0));
System.out.println("第一组"+matcher.group(1));
System.out.println("第二组"+matcher.group(2));
}
}
}
?
|