Phần này chúng ta thảo luận về Validate URL. Có những khái niệm tương đối "khó nhằn", nhưng chúng ta sẽ cố gắng "đào sâu".
Nhìn qua một số URL chúng ta sẽ thấy sự đa dạng, dài ngắn...đủ kiểu. Tựu trung lại bao gồm:
- Tên, ví dụ DatVietLapTrinh
- Dấu chấm '.'
- Phần mở rộng, ví dụ COM, NET, US....
Tạm gác lại "hình dáng" của các URL, chúng ta tìm hiểu một thứ tương đối "loằng ngoằng" đó là Regular Expressions.
PCRE (Perl Compatible Regular Expressions) là một thư viện mã nguồn mở mạnh mẽ, dùng để khớp các mẫu văn bản (pattern matching) theo cú pháp và ngữ nghĩa của ngôn ngữ Perl. Đây là chuẩn Regex phổ biến nhất, được sử dụng rộng rãi trong các ngôn ngữ lập trình như PHP (hàm preg_*), Apache, và nhiều công cụ khác nhờ tính linh hoạt cao
Cú pháp Regex PCRE Cơ bản
PCRE sử dụng các ký tự đặc biệt để tạo khuôn mẫu tìm kiếm:
-Ký tự đại diện: . khớp với bất kỳ ký tự nào ngoại trừ dòng mới (newline).
-Neo (Anchors): ^ khớp đầu dòng, $ khớp cuối dòng.
-Lượng từ (Quantifiers):
- *: 0 hoặc nhiều lần.
- +: 1 hoặc nhiều lần.
- ?: 0 hoặc 1 lần (không bắt buộc).
-Nhóm và thay thế:
- (): Nhóm các ký tự.
- |: Toán tử OR (hoặc).
-Ký tự đặc biệt (Escaping): Dùng \ trước các ký tự đặc biệt để tìm chính nó, ví dụ \. để tìm dấu chấm
PCRE được sử dụng chủ yếu thông qua các hàm preg_ trong PHP:
- preg_match(): Kiểm tra xem mẫu có khớp trong chuỗi không.
- preg_match_all(): Tìm tất cả các kết quả khớp.
- preg_replace(): Tìm và thay thế nội dung dựa trên pattern.
Các mẫu PCRE thường dùng
`\d+`: Khớp với một hoặc nhiều chữ số (ví dụ: "123").
`\s+`: Khớp với một hoặc nhiều khoảng trắng, ký tự tab, hoặc ký tự xuống dòng.
`[a-z]{3}`: Khớp chính xác ba chữ cái thường.
`^Start`: Chỉ khớp với từ "Start" khi nó nằm ở đầu của một chuỗi.
khhh
Không có nhận xét nào:
Đăng nhận xét