Bài 04: Các quy tắc Regular Expression căn bản P3

5. Kí hiệu đặc biệt cho các từ khoá Regex Như ở bài Các quy tắc Regular Expression căn bản mình đã trình bày danh sách ký tự Meta trong Regular expression . Trong Regex đã quy định một số ký tự như dấu (.), dấu '/'. Để khai báo kí hiệu đặc biệt chúng ta cần thêm dấu để phân biệt. Ví dụ: ...

5. Kí hiệu đặc biệt cho các từ khoá Regex

Như ở bài Các quy tắc Regular Expression căn bản mình đã trình bày danh sách ký tự Meta trong Regular expression. Trong Regex đã quy định một số ký tự như dấu (.), dấu '/'. Để khai báo kí hiệu đặc biệt chúng ta cần thêm dấu  để phân biệt.

Ví dụ: Kiểm tra chuỗi sau có phải là một dãy các ký tự.

$partern = '/./';
$subject = 'chiasephp';
if (preg_match($partern, $subject)){
    echo 'Chuỗi regex so khớp';
    die();
}

  Run

Ví dụ: Kiểm tra chuỗi sau có phải là số hay không?

$pattern = '/d/';
$subject = '1234';
if (preg_match($pattern, $subject)){
    echo 'Đây là một số';
}

  Run

6. Khai báo kí tự này hoặc kí tự khác

Để khai báo chuỗi có thể có kí tự này hoặc kí tự khác chúng ta sử dụng dấu |

Ví dụ: Kiểm tra chuỗi $pattern có kí tự A hoặc B không

$pattern = '/^A|B$/';
$subject = 'A';
if (preg_match($pattern, $subject)){
    echo 'Chuỗi regex so khớp';
}

  Run

7. Gộp, nhóm Regex

Để gộp, nhóm Regex lại cho dễ nhìn, chúng ta sử dụng ().

Ví dụ: Gộp nhóm A hoặc B lại thành 1 nhóm.

$pattern = '/(A|B)/';
$subject = 'A';
if (preg_match($pattern, $subject)){
    echo 'Chuỗi regex so khớp';
}

  Run

8. Khai báo 1 chuỗi có độ dài không giới hạn

Ở phần trước chúng ta sử dụng {min,max} để khai báo, tuy nhiên có cách khác ngắn gọn hơn, là sử dụng các kí tự: * + ?

  • Kí tự * đại diện cho không hoặc nhiều kí tự.
  • Kí tự + đại diện cho một hoặc nhiều kí tự.
  • Kí tự ? đại diện cho không hoặc một kí tự.

Ví dụ: Kiểm tra chuỗi trống hoặc có những chữ cái in thường

$pattern = '/[a-z]{0,}/';
$subject = 'a';
if (preg_match($pattern, $subject)){
    echo 'Chuỗi regex so khớp';
}

  Run

9. Regex phủ định

Để phủ định 1 regex chúng ta sử dụng kí tự ^

Ví dụ: Kiểm tra chuỗi không có ký tự số

$pattern = '/[^0-9]{1,2}/';
$subject = 'ab';
if (preg_match($pattern, $subject)){
    echo 'Chuỗi regex so khớp';
}

  Run

11. Tổng kết

Tạm thế, như vậy mình đã trình bày xong các quy tắc cơ bản nhất trong Regex. Trong mỗi quy tắc đều có những ví dụ trực quan các bạn có thể xem và tùy biến các quy tắc này để có những quy tắc mới.

0