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