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

Phương thức Matcher.usePattern() 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 usePattern() của lớp Matcher chấp nhận một đối tượng Pattern đại diện cho một regex pattern mới và sử dụng nó để tìm khớp.

Ví dụ

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

public class UsePatternExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập văn bản đầu vào: ");
        String input = sc.nextLine();
        String regex = "[#%&*]";
        
        // Tạo đối tượng Pattern
        Pattern pattern = Pattern.compile(regex);
        
        // Tạo đối tượng Matcher
        Matcher matcher = pattern.matcher(input);
        
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        
        // Lấy Pattern đã sử dụng
        System.out.println("Có " + count + " ký tự đặc biệt [# % & *] trong văn bản đã cho");
        
        // Xây dựng pattern mới chấp nhận 6-15 ký tự
        Pattern newPattern = Pattern.compile("\\A(?=\\w{6,15}\\z)");
        
        // Chuyển sang pattern mới
        matcher = matcher.usePattern(newPattern);
        
        if (matcher.find()) {
            System.out.println("Đầu vào đã cho chứa 6 đến 15 ký tự");
        } else {
            System.out.println("Đầu vào đã cho không chứa 6 đến 15 ký tự");
        }
    }
}

Kết quả

Nhập văn bản đầu vào: #*mypassword&
Có 3 ký tự đặc biệt [# % & *] trong văn bản đã cho
!!mypassword!
Đầu vào đã cho không chứa 6 đến 15 ký tự