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

Phương thức Matcher.regionStart() trong Java với ví dụ


Lớp java.util.regex.Matcher đại diện cho một engine thực hiện các phép toán khớp khác nhau. Không có constructor cho lớp này, bạn có thể tạo/nhận đối tượng của lớp này bằng phương thức matcher() của lớp java.util.regex.Pattern.

Phương thức regionStart() của lớp này trả về giá trị nguyên đại diện cho chỉ số bắt đầu của vùng (region) hiện tại của matcher.

Ví dụ 1: Kiểm tra regionStart sau khi đặt region

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

public class RegionStartExample {
    public static void main(String[] args) {
        String regex = "[#]";
        System.out.println("Nhập một chuỗi: ");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        // Đặt region từ 2 đến 4
        matcher.region(2, 4);
        
        if (matcher.find()) {
            System.out.println("Tìm thấy khớp");
        } else {
            System.out.println("Không tìm thấy khớp");
        }
        
        System.out.println("Đầu vùng: " + matcher.regionStart());
    }
}

Kết quả

Nhập một chuỗi: #sample text
Không tìm thấy khớp
Đầu vùng: 2

Ví dụ 2: regionStart với region tùy chỉnh

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

public class RegionStartExample {
    public static void main(String[] args) {
        String regex = "(.*)(\\d+)(.*)";
        String input = "124 This is a sample Text, 1234, with numbers in between.";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        // Đặt region từ 5 đến 20
        matcher.region(5, 20);
        
        if (matcher.matches()) {
            System.out.println("Tìm thấy khớp");
        } else {
            System.out.println("Không tìm thấy khớp");
        }
        
        System.out.print("Đầu vùng: " + matcher.regionStart());
    }
}

Kết quả

Không tìm thấy khớp
Đầu vùng: 5