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

Regular Expression 05/02/2017 07:00 1004
Để tiếp theo bài trước bài này mình sẽ trình bày tiếp một số quy tắc cơ bản của Regular Expression. Tuy không thể trình bày tất cả nhưng cũng phần nào giúp các bạn hiểu các quy tắc cơ bản của Regular Expression.

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.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.