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.

0