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

Phương thức quote() của Pattern trong Java với các ví dụ

Gói java.util.regex của Java cung cấp các lớp để tìm các mẫu cụ thể trong chuỗi ký tự. Lớp Pattern của gói này là biểu diễn đã biên dịch của một biểu thức chính quy. Phương thức quote() của lớp này nhận một giá trị chuỗi và trả về một chuỗi mẫu sẽ khớp với chuỗi đã cho, tức là các metaký tự và chuỗi thoát được thêm vào chuỗi đã cho. Tuy nhiên, ý nghĩa của chuỗi đã cho không bị ảnh hưởng.

Ví dụ 1

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

public class QuoteExample {
    public static void main(String args[]) {
        // Đọc chuỗi đầu vào
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập chuỗi đầu vào");
        String input = sc.nextLine();
        System.out.print("Nhập chuỗi cần tìm: ");
        String regex = Pattern.quote(sc.nextLine());
        System.out.println("chuỗi mẫu: " + regex);
        
        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);
        
        // Lấy đối tượng Matcher
        Matcher matcher = pattern.matcher(input);
        
        if (matcher.find()) {
            System.out.println("Tìm thấy khớp");
        } else {
            System.out.println("Không tìm thấy khớp");
        }
    }
}

Kết quả

Nhập chuỗi đầu vào This is an example program demonstrating the quote() method
Nhập chuỗi cần tìm: the
chuỗi mẫu: \Qthe\E
Tìm thấy khớp

Ví dụ 2

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

public class QuoteExample {
    public static void main(String args[]) {
        String regex = "[aeiou]";
        String input = "Hello how are you welcome to Tutorialspoint";
        
        // Biên dịch biểu thức chính quy
        Pattern.compile(regex);
        regex = Pattern.quote(regex);
        System.out.println("chuỗi mẫu: " + regex);
        
        // Biên dịch lại
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        if (matcher.find()) {
            System.out.println("Chuỗi đầu vào chứa nguyên âm");
        } else {
            System.out.println("Chuỗi đầu vào không chứa nguyên âm");
        }
    }
}

Kết quả

chuỗi mẫu: \Q[aeiou]\E
Chuỗi đầu vào chứa nguyên âm