Java: Lớp Pattern
Bất kỳ biểu thức chính quy nào được chỉ định dưới dạng chuỗi trước tiên phải được biên dịch thành một thể hiện của lớp Pattern.
Đối tượng pattern kết quả sau đó có thể được sử dụng để tạo đối tượng Matcher.
Một khi đối tượng Matcher được lấy, đối tượng Matcher sau đó có thể so khớp các chuỗi ký tự tùy ý với biểu thức chính quy.
Tất cả các trạng thái khác nhau liên quan đến việc thực hiện so khớp đều nằm trong trình kết hợp; rất nhiều các đối tác có thể chia sẻ cùng một mẫu.
Khai báo của lớp Pattern như sau:
public final class Pattern
extends Object
implements Serializable
Một mẫu là một đại diện được biên dịch của một biểu thức chính quy.
Một chuỗi lệnh gọi điển hình sẽ là:
// tạo đối tượng Pattern với biểu thức chính quy Pattern p = Pattern.compile("a*b"); // tạo đối tượng Matcher sử dụng đối tượng Pattern với chuỗi input Matcher m = p.matcher("aaaaab"); // kiểm tra tương thích boolean b = m.matches();
Phương thức match() của lớp Matcher được định nghĩa để sử dụng khi một biểu thức chính quy được sử dụng chỉ một lần. Phương thức này sẽ biên dịch một biểu thức và so khớp nó với một chuỗi đầu vào trong một lời gọi.
Câu lệnh:
boolean b = Pattern.matches("a*b", "aaaaab");
là một câu lệnh đơn tương đương cho ba câu lệnh được sử dụng ở trên. Tuy nhiên, đối với các so khớp lặp lại sẽ kém hiệu quả hơn vì nó không cho phép sử dụng lại mẫu đã biên dịch.
Các phiên bản của lớp Pattern là bất biến và do đó nó an toàn để sử dụng bởi nhiều thread đồng thời trong khi các phiên bản của lớp Matcher không an toàn cho việc sử dụng như vậy.