Bài 03: Các quy tắc Regular Expression căn bản P2
1. Ký tự bắt đầu và kết thúc Dùng ký tự bắt đầu ^ và ký tự kết thúc $ đặt vào đầu và cuối chuỗi $pattern, nếu so khớp hoàn toàn từ đầu tới cuối thì là đúng. Ví dụ : Kiểm tra trong subject cơ bằng regex không $pattern = '/^regex$/'; $subject = 'regex'; if (preg_match($pattern, ...
1. Ký tự bắt đầu và kết thúc
Dùng ký tự bắt đầu ^ và ký tự kết thúc $ đặt vào đầu và cuối chuỗi $pattern, nếu so khớp hoàn toàn từ đầu tới cuối thì là đúng.
Ví dụ: Kiểm tra trong subject cơ bằng regex không
$pattern = '/^regex$/'; $subject = 'regex'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
2. Phạm vi của chuỗi
Kiểm tra một chuỗi có phải là chữ cái in thường hay không thì ta sẽ dùng ký hiệu [min-max], trong đó min là ký tự bắt đầu, max là ký tự kết thúc. Hoặc [list_chars] trong đó list_chars là danh sách các ký tự cho phép.
Ví dụ: Kiểm tra có phải chữ cái in thường
$pattern = '/[a-z]/'; $subject = 'regular'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
Ví dụ: Kiểm tra có phải chữ cái in hoa
$pattern = '/[A-Z]/'; $subject = 'REGULAR'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
Ví dụ: Kiểm tra một ký tự là chữ số
$pattern = '/[0-9]/'; $subject = 'd'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
Ví dụ: Kiểm tra một ký tự là in hoa hoặc in thường
$partern = '/[a-zA-Z]/'; $subject = 'RegularExpression'; if (preg_match($partern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
Ví dụ: Pattern là chữ a hoặc số 2 hoặc chữ b
Trong trường hợp này, chúng ta ko sử dụng kí hiệu [min. max] để định nghĩa
Nên Regular Expression sẽ hiểu là một trong các ký tự, tức là nếu:
- $subject có chứa ký tự a
- $subject có chứa ký tự 2
- $subject có chứa ký tự b
Thì regex sẽ trả về đúng.
$pattern = '/[a2b]/'; $subject = 'a'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }Run
3. Xác định chiều dài của chuỗi
Kiểm tra chiều dài của một chuỗi thì ta sẽ dùng ký hiệu {min-max}, trong đó min là chiều dài tối thiểu, max là chiều dài tối đa.
Ví dụ: Kiểm tra $pattern là chữ in thường từ 5 đến 10 ký tự
$pattern = '/^[a-z]{5,10}$/'; $subject = 'chiasephp'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
Ví dụ: Kiểm tra pattern là chữ số từ 3 đến 10 ký tự
$pattern = '/^[0-9]{3,10}$/'; $subject = '123456789'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
Ví dụ: Kiểm tra pattern là chữ in thường có 5 ký tự
// cách 1: $pattern = '/^[a-z]{5,5}$/'; $subject = 'sssss'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex cách 1 so khớp'; } // cách 2: $pattern = '/^[a-z]{5}$/'; $subject = 'sssss'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex cách 2 so khớp'; }
Run
4. Khai báo 1 kí tự bất kì
Để khai báo 1 kí tự bất kì chúng ta dùng ki hiệu dấu chấm .
Ví dụ: Kiểm tra $pattern là ký tự bất kỳ dài từ 5 đến 10 ký tự
$pattern = '/^.{5,10}$/'; $subject = 'www.chiasephp.net'; if (preg_match($pattern, $subject)){ echo 'Chuỗi regex so khớp'; }
Run
5. Tổng kết
Chúng ta sẽ tiếp tục tìm hiểu thêm 1 số quy tắc khác và cách sử dụng Regular Expression trong bài tiếp theo.