Biểu Thức Chính Quy PHP – PHP Regular Expressions

Biểu Thức Chính Quy PHP là một chuỗi ký tự đặc biệt được sử dụng để mô tả một mẫu hoặc một chuỗi các ký tự. Nó cho phép bạn tìm kiếm, thay thế và chia một chuỗi thành nhiều phần. Biểu thức chính quy được sử dụng rộng rãi trong lập trình ứng dụng hiện nay.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Biểu Thức Chính Quy PHP Là gì

Biểu thức chính quy PHP là một loại biểu thức chính quy được sử dụng trong ngôn ngữ lập trình PHP. Nó cung cấp các hàm sử dụng biểu thức chính quy để tìm kiếm, thay thế và chia chuỗi thành nhiều phần.

Hướng dẫn Biểu Thức Chính Quy PHP

Để sử dụng biểu thức chính quy PHP, bạn có thể sử dụng các hàm sẵn có trong PHP như preg_match (), preg_replace (), và preg_split (). Các hàm này cho phép bạn tìm kiếm, thay thế và chia chuỗi thành nhiều phần bằng cách sử dụng biểu thức chính quy.

Biểu thức chính quy (Regular Expression, viết tắt là Regex) là một chuỗi các ký tự được dùng để tìm ra một pattern cụ thể nào đó trong một hay một vài câu hay đoạn text. Bạn có thể gọi chúng là biểu thức đại diện cũng được.

Cách sử dụng biểu thức chính quy trong PHP

Để sử dụng biểu thức chính quy trong PHP, chúng ta có thể sử dụng các hàm sau:

  • preg_match(): Tìm kiếm một mẫu trong một chuỗi.
  • preg_match_all(): Tìm kiếm tất cả các mẫu trong một chuỗi.
  • preg_replace(): Thay thế một mẫu trong một chuỗi.
  • preg_split(): Chia một chuỗi thành các phần dựa trên một mẫu.

Ví dụ

// Tìm kiếm một mẫu trong một chuỗi
$string = "Hello, world!";

$pattern = "/world/";

$result = preg_match($pattern, $string);

if ($result) {
  echo "Tìm thấy mẫu 'world'!";
} else {
  echo "Không tìm thấy mẫu 'world'!";
}

// Thay thế một mẫu trong một chuỗi
$string = "Hello, world!";

$pattern = "/world/";

$replacement = "PHP";

$result = preg_replace($pattern, $replacement, $string);

echo $result;

Kết quả:

Tìm thấy mẫu 'world'!
Hello, PHP!

Các ký hiệu biểu thức chính quy

Biểu thức chính quy PHP sử dụng các ký hiệu để xác định các mẫu. Một số ký hiệu biểu thức chính quy phổ biến bao gồm:

  • .: Bất kỳ ký tự nào.
  • [: Một tập hợp các ký tự.
  • ^: Bắt đầu của chuỗi.
  • $: Kết thúc của chuỗi.
  • *: Lặp lại một ký tự hoặc một tập hợp ký tự nhiều lần.
  • +: Lặp lại một ký tự hoặc một tập hợp ký tự ít nhất một lần.
  • ?: Lặp lại một ký tự hoặc một tập hợp ký tự một hoặc nhiều lần.

Các nhóm biểu thức chính quy

Chúng ta có thể sử dụng các nhóm trong biểu thức chính quy PHP để lưu trữ các kết quả khớp. Ví dụ:

$string = "Hello, world!";

$pattern = "/(\w+) (.*)/";

$result = preg_match($pattern, $string, $matches);

if ($result) {
  echo "Tìm thấy tên là '{$matches[1]}' và thông điệp là '{$matches[2]}'!";
} else {
  echo "Không tìm thấy mẫu!";
}

Kết quả:

Tìm thấy tên là 'Hello' và thông điệp là 'world!'!

Các biến thể biểu thức chính quy

PHP hỗ trợ các biến thể biểu thức chính quy PHP sau:

  • PCRE: Biểu thức chính quy Perl Compatible Regular Expressions. Đây là biến thể mặc định của biểu thức chính quy trong PHP.
  • ECMAScript: Biểu thức chính quy ECMAScript.
  • POSIX: Biểu thức chính quy POSIX.

Chúng ta có thể sử dụng các biến thể biểu thức chính quy bằng cách sử dụng tham số flags của hàm preg_match(), preg_match_all(), preg_replace()preg_split().

Toán tử trong biểu thức chính quy

Các toán tử được sử dụng trong biểu thức chính quy bao gồm:

  • ^: Đánh dấu bắt đầu chuỗi.
  • $: Đánh dấu kết thúc chuỗi.
  • .: Biểu thị một ký tự duy nhất.
  • (): Nhóm các biểu thức.
  • []: Tìm một loạt các ký tự, ví dụ: [abc] có nghĩa là a hoặc b hoặc c.
  • [^]: Tìm các ký tự không nằm trong loạt, ví dụ: [^xyz] có nghĩa là KHÔNG phải x hoặc y hoặc z.
  • -: Tìm khoảng cách giữa các yếu tố, ví dụ: [a-z] có nghĩa là từ a đến z.
  • |: Toán tử OR logic, được sử dụng giữa các yếu tố, ví dụ: a|b có nghĩa là a HOẶC b.
  • ?: Biểu thị số lượng ký tự trước đó hoặc khoảng giá trị của yếu tố, có thể xuất hiện 0 hoặc 1 lần.
  • *: Biểu thị số lượng ký tự trước đó hoặc khoảng giá trị của yếu tố, có thể xuất hiện 0 hoặc nhiều lần.
  • +: Biểu thị số lượng ký tự trước đó hoặc khoảng giá trị của yếu tố, có thể xuất hiện ít nhất 1 lần.
  • {}: Biểu thị số lượng ký tự trước đó hoặc khoảng giá trị của yếu tố, xuất hiện ít nhất n lần. Ví dụ: n{3}.

Lớp ký tự đặc biệt trong Biểu thức chính quy

Trong biểu thức chính quy PHP, các ký tự đặc biệt được sử dụng để tìm kiếm các mẫu chuỗi cụ thể. Các lớp ký tự đặc biệt bao gồm:

  • \d: Nhóm các ký tự số.
  • \D: Nhóm các ký tự không phải số.
  • \s: Nhóm các ký tự khoảng trắng, bao gồm cả dấu cách, tab và dòng mới.
  • \S: Nhóm các ký tự không phải khoảng trắng.
  • \w: Nhóm các ký tự chữ, số và dấu gạch dưới.
  • \W: Nhóm các ký tự không phải chữ, số và dấu gạch dưới.

Biểu thức chính quy POSIX

POSIX là tiêu chuẩn hệ thống hoạt động trong các hệ điều hành UNIX và tương tự. Biểu thức chính quy POSIX được sử dụng để tìm kiếm các mẫu trong các tập tin và văn bản của UNIX. Tuy nhiên, các hàm biểu thức chính quy POSIX đã bị loại bỏ khỏi PHP 7.0.0.

Dấu ngoặc, Bộ định lượng, Bộ sửa đổi trong Biểu thức chính quy kiểu PERL

PERL Style Regular Expression cung cấp một loạt các toán tử để phát triển các biểuthức chính quy phức tạp hơn. Ví dụ:

  • Brackets: Có thể sử dụng nhiều ký tự để tìm kiếm, ví dụ: (abc) có nghĩa là tìm kiếm chuỗi “abc”.
  • Quantifiers: Sử dụng để chỉ định số lượng xuất hiện của yếu tố, ví dụ: {3} có nghĩa là yêu cầu yếu tố xuất hiện chính xác 3 lần.
  • Modifiers: Sử dụng để thực hiện các thay đổi trên biểu thức chính quy, ví dụ: /i có nghĩa là không phân biệt chữ hoa và chữ thường.

Hàm POSIX PHP Regexp

PHP Regexp POSIX Function được sử dụng để tìm kiếm mẫu trong văn bản và tập tin. Tuy nhiên, chúng đã bị loại bỏ khỏi PHP 5.3.0 và bị loại bỏ hoàn toàn khỏi PHP 7.0.0.

Ưu và Nhược điểm Biểu Thức Chính Quy PHP

Ưu điểm của biểu thức chính quy PHP là nó cung cấp một công cụ mạnh mẽ để phân tích và tìm kiếm mẫu. Nó có thể được sử dụng để xác minh chuỗi, tìm kiếm chuỗi trong một chuỗi khác và thay thế chuỗi bởi một chuỗi khác. Tuy nhiên, nhược điểm của biểu thức chính quy PHP là nó có thể rất phức tạp và khó hiểu đối với người mới học.

Lời khuyên Biểu Thức Chính Quy PHP

Khi sử dụng biểu thức chính quy PHP, bạn nên luôn kiểm tra các ký tự đặc biệt và hiệu suất của nó trên chuỗi lớn. Bạn nên sử dụng biểu thức chính quy chỉ khi nó cần thiết và không sử dụng nó quá nhiều, vì nó có thể làm tăng thời gian chạy của chương trình.

Biểu thức chính quy PHP cung cấp một công cụ mạnh mẽ để phân tích và tìm kiếm mẫu trong chuỗi. Nó có thể được sử dụng để xác minh chuỗi, tìm kiếm chuỗi trong một chuỗi khác và thay thế chuỗi bởi một chuỗi khác. Biểu thức chính quy rất hữu ích trong việc tạo ra hệ thống templates HTML nhận dạng các thẻ. Nó rộng rãi được sử dụng để phát hiện trình duyệt, xác nhận biểu mẫu, lọc spam và kiểm tra độ mạnh mật khẩu. Nó cũng hữu ích trong việc xác minh đầu vào của người dùng, chẳng hạn như địa chỉ email, số điện thoại di động và địa chỉ IP.

Kết Thúc

Biểu thức chính quy PHP là một công cụ mạnh mẽ để tìm kiếm, thay thế và chia chuỗi thành nhiều phần. Nó có nhiều ưu điểm và được sử dụng rộng rãi trong lập trình ứng dụng hiện nay. Tuy nhiên, nó có thể rất phức tạp và khó hiểu đối với người mới học. Khi sử dụng biểu thức chính quy PHP, bạn nên luôn kiểm tra các ký tự đặc biệt và hiệu suất của nó trên chuỗi lớn. Bạn nên sử dụng biểu thức chính quy chỉ khi nó cần thiết và không sử dụng nó quá nhiều, vì nó có thể làm tăng thời gian chạy của chương trình.