Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Phương thức MatchResult group(int group) trong Java


Chức năng

group(int group) trả về substring khớp của group chỉ định trong match cuối.

Ví dụ

import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GroupExample {
    public static void main(String[] args) {
        String regex = "(.*)(\\d+)(.*)";
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập văn bản: ");
        String input = sc.nextLine();
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            System.out.println("Match found");
        }
        MatchResult res = matcher.toMatchResult();
        String matchedData = res.group(2); // group 2 = (\\d+)
        System.out.println(matchedData);
    }
}

Kết quả

Nhập văn bản: This is a sample Text, 123
Match found
3

Giải thích

Input: "This is a sample Text, 123"

  • Group 1 (.*): "This is a sample Text, " (greedy, ăn hết có thể)
  • Group 2 (\\d+): "123" (số cuối)
  • Group 3 (.*): "" (rỗng)
  • Kết quả in ra group(2) = "123" nhưng output ghi "3" - có thể lỗi ví dụ gốc. Group 2 thực tế là "123".

Sửa ví dụ cho đúng

// Regex tốt hơn để demo group:
String regex = "(.*)(\\d+)";
Input: "Text 123"
Group 1: "Text "
Group 2: "123"
res.group(2) -> "123"