Tôi đang cố gắng để hiểu Pattern.quote
sử dụng đoạn mã sau:Cách sử dụng phương thức Pattern.quote là gì?
String pattern = Pattern.quote("1252343% 8 567 hdfg gf^$545");
System.out.println("Pattern is : "+pattern);
sản xuất đầu ra:
Pattern is : \Q1252343% 8 567 hdfg gf^$545\E
gì \Q
và \E
đây? Mô tả tài liệu cho biết:
Trả lại mẫu chữ
String
cho số được chỉ địnhString
.Phương pháp này tạo ra một
String
có thể được sử dụng để tạo mộtPattern
khớp với chuỗis
như thể nó là một kiểu chữ.Siêu ký tự hoặc chuỗi thoát trong chuỗi đầu vào sẽ không có ý nghĩa đặc biệt.
Nhưng loại trả về String
và không phải là đối tượng biên soạn Pattern
.
Tại sao phương pháp này được yêu cầu và một số ví dụ sử dụng là gì?
Tương đương chính xác với 'someString.matches (Pattern.quote (someLiteral))' thực sự là 'someString.matches (" \\ Q "+ someLiteral.replace (" \\ E "," \\ E \\\ \ E \\ Q ") +" \\ E ")' – kbolino
@kbolino Rofl. Và những gì về thay thế "\\ Q"? – Andrew
@Andrew Nó cũng xử lý: '" \\ Q \\ E ".matches (Pattern.quote (" \\ Q \\ E ")) // true'. – Bohemian