Java正则表达式
捕获分组
普通捕获组
@Test
void test() {
String str = "2024-05-01";
Pattern pattern = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(0));
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
}
}
命名捕获组
@Test
public void test() {
String str = "2024-05-01";
Pattern pattern = Pattern.compile("(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(0));
System.out.println(matcher.group("year"));
System.out.println(matcher.group("month"));
System.out.println(matcher.group("day"));
}
}
非捕获组
@Test
public void test() {
String str = "2024-05-01";
Pattern pattern = Pattern.compile("(?<year>\\d{4})-(?:\\d{2})-(?<day>\\d{2})");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(0));
System.out.println(matcher.group("year"));
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
}
}