Học về Regular Expression trong PHP

Học về Regular Expression trong PHP là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Học về Regular Expression trong PHP sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và PHP nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Đây là bài đầu tiên trong loạt bài tìm hiểu Regular Expression và trong bài này chung ta tìm hiểu khái niệm Regular Expression là gì?

1. Regular Expression là gì?

Regular Expression hay còn gọi là biểu thức chính quy được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Ngoài cái tên gọi Regular Expression ra thì nó còn có thể viết tắt thành RegEx.

Nguyên tắc hoạt động của biểu thức RegEx là so khớp dựa vào khuôn mẫu, khuôn 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ì tôi sẽ giới thiệu 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.

2. Hàm Preg_match trong php

Để hiểu rõ hơn hàm này thì bạn đọc bài hàm preg_match trong PHP nhé.

Cú pháp: preg_match($pattern$subject$matches)

Hàm này có tổng cộng 5 tham số nhưng ở đây tôi chỉ đưa ra 3 tham số quan trọng nhất và thường hay sử dụng:

  • $pattern là chuỗi Regular Expression Pattern
  • $subject là chuỗi nguồn mà chúng ta muốn so khớp với $pattern
  • $matches là danh sách kết quả trả về đúng khi so khớp $pattern$subject

Sau đây là một số ví dụ về Regular Expression, bạn có thể xem và làm theo chứ không nhất thiết phải hiểu nó 100% vì mục đích tôi muốn các bạn hiểu được ý nghĩa của nó.

Kiểm tra một chuỗi là số

if (preg_match('/^[0-9]+$/', '123', $maches)){
    var_dump($maches);
}

kết quả:

  array    0 => string '123' (length=3) 

Kết quả in ra màn hình là giá trị của biến $maches, như vậy chuỗi 123 đã so khớp với pattern /^[0-9]+$/

Kiểm tra một chuỗi là các ký tự thường

if (preg_match('/^[a-z]+$/', 'thehalfheart', $maches)){
    var_dump($maches);
}   

Kết quả:

array
  0 => string 'thehalfheart' (length=12) 

Như vậy chuỗi thehalfheart đã được so khớp vỡi pattern /^[a-z]+$/

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

if (preg_match('/^[A-Z]+$/', 'THEHALFHEART', $maches)){
    var_dump($maches);
} 

Kết quả:

  array    0 => string 'THEHALFHEART' (length=12) 

Như vậy chuỗi THEHALFHEART đã được khớp với pattern /^[A-Z]+$/

2. Lời Kết

Như vậy là bạn đã tìm hiểu xong khái niệm Regular Expression là gì và biết được một thuật ngữ khác đó là biểu thức chính quy nên nếu có ai hỏi thì trả lời thực chất cả hai khái niệm là một nhé.

Qua ba ví dụ trên bạn phải hiểu được Regular Expression sử dụng những biểu thức và nguyên tắc riêng để đưa ra khuôn so sánh và những biểu thức đó có thể mô tả bằng ngôn ngữ bình thường được.

Hy vọng với bài viết về Học về Regular Expression trong PHP đã giải đáp giúp bạn phần nào về kiến thức lập trình PHP. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!