Hướng dẫn dùng pattern check trong PHP

Biểu thức chính quy [Regular Expression] là gì?

Regex là các mẫu [pattern] thay vì các chuỗi cụ thể được sử dụng tìm/thay thế [Find/Replace]. Là một công cụ cực mạnh cho xử lý chuỗi trong Php, javascript… Ví dụ: Khi kiểm tra tính hợp lệ của email hoặc số điện thoại thì điều bạn nghĩ tới đầu tiên chính là Regex. Regex là viết tắt của Regular Expression, tên thuần Việt là biểu thức chính quy.

Ký tự cơ bản của Biểu thức chính quy

Nói chung là Regex còn nhiều ứng dụng hữu ích khác, tóm gọn lại một chút là hiểu đơn giản thì Regex là một chuỗi các kí tự miêu tả một bộ các chuỗi kí tự khác, theo những quy tắc và cú pháp nhất định.

Hàm Preg_match trong php

Nguyên tắc hoạt động của biểu thức Regex là so khớp dựa vào mẫu [pattern], mẫu được xây dựng từ các quy tắc căn bản của biểu thức RegEx. Và để các bạn nắm rõ regular expression là gì thì có một hàm xử lý Regular Expression trong php đó là hàm preg_match, sau đó đưa ra một vài ví dụ nhỏ để các bạn thực hành trước khi tìm hiểu các phần nâng cao hơn.

Cú pháp là: preg_match[$pattern, $subject, $matches]

  • $pattern là chuỗi Regex Pattern
  • $subject là chuỗi nguồn để chúng ta so khớp với $pattern
  • $matches là danh sách kết quả trả về đúng khi so khớp 2 chuỗi trên

VD1: kiểm tra một chuỗi là số

if [preg_match['/^[0-9]+$/', '123', $matches]]{

    var_dump[$matches];

}

kết quả:

array

  0 => string '123' [length=3]

VD2: kiểm tra một chuỗi các ký tự thường

if [preg_match['/^[a-z]+$/', 'trianh', $matches]]{

    var_dump[$matches];

}

Kết quả: 

array

  0 => string 'trianh' [length=6]

VD3: Kiểm tra một chuỗi là các ký tự hoa

if [preg_match['/^[A-Z]+$/', 'TRIANH', $matches]]{

    var_dump[$matches];

}

Kết quả:

array

  0 => string 'TRIANH' [length=6]

Tạo 1 Regular Expressions trong JS

Trong Javascript thì Regular Expression là một chuỗi nhưng nó không được bao quanh bởi cặp dấu nháy đơn ' hoặc nháy kép " mà nó được bao quanh bởi cặp dấu /. Có 2 cách tạo:

Cú pháp: new RegExp[pattern[, flags]]

VD:

var regexConst = new RegExp['abc'];

Hoặc sử dụng dấu /

Cú pháp: /pattern/flags

Trong đó:

  • pattern là chuỗi Regular Expression
  • flags là thông số cấu hình cho chuỗi pattern và nó có các giá trị:
    • i : so khớp không quan tâm đến chữ hoa chữ thường
    • g : so khớp toàn bộ chuỗi cần tìm
    • m : so khớp luôn cả các dữ liệu xuống dòng [multiline]

Ví dụ: Pattern kiểm tra chuỗi có tồn tại chữ “trianh” không, không phân biệt chữ hoa chữ thường và tìm toàn bộ tài liệu.

var pattern = /trianh/igm;

  • pattern là trianh
  • flags là igm

Cách viết Regex chi tiết

Trong Regex có vài cái khá là điển hình và được sử dụng rất nhiều bao gồm so khớp chuỗi, tách chuỗi, tìm kiếm trong chuỗi, thay thế chuỗi…

Ở bài trước chúng ta đã tìm hiểu sơ qua về khái niệm Regular Expression rồi, bài này chúng ta sẽ tiếp tục với những lý thuyết tiếp theo của Regular Expression và kèm theo với thực hành của từng phần.

1, Hàm preg_match.

-Hàm này dùng để kiểm tra so khớp dữ liệu đầu vào và chuỗi Regular Expression có pass không và trả về kết quả.

Cú Pháp:

preg_match[$pattern, $subject, $match, $flags, $offset];

Trong đó:

  • $pattern là chuỗi Regular Expression.
  • $subject là chuỗi cần so khớp.
  • $match là kết trả về, được truyền vào dưới dạng tham chiếu [có thể bỏ trống].
  • $flags là tham số  chỉ ra vị trí cắt chuỗi so khớp [có thể bỏ trống].
  • $offset là tham số chỉ ra vị trí bắt đầu của việc so khớp chuỗi [có thể bỏ trống].

VD: So sánh xem chuỗi có tồn tại đoạn 'toidicode' hay không?

Chủ Đề