hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Lập trình PHP cơ bản
Biểu thức chính quy (Regular Expression) trong PHP

Biểu thức chính quy (Regular Expression) trong PHP

  • 22-02-2023
  • Toanngo92
  • 0 Comments

Mục lục

  • Biểu thức chính quy
    • Các hàm Regexp POSIX của PHP

Biểu thức chính quy

Có thể chúng ta sẽ thấy biểu thức chính quy còn được gọi là regex, biểu thức chính quy là một chuỗi các ký tự mô tả một mẫu tìm kiếm cụ thể ở dạng chuỗi văn bản. Chúng được sử dụng phổ biến trong các thuật toán lập trình nhằm vào các tác vụ cụ thể. Biểu thức chính quy tìm nạp các chuỗi bắt buộc dựa trên mẫu đã xác định.

Biểu thức chính quy được sử dụng để thực hiện tất cả các loại hoạt động tìm kiếm và thay thế văn bản. Chúng là một cách nhỏ gọn để mô tả các mẫu chuỗi phù hợp với một lượng văn bản cụ thể. Biểu thức chính quy là các chuỗi bao gồm các dấu phân cách, mẫu và các công cụ sửa đổi tùy chọn. Cú pháp được sử dụng là $exp = “/hello/i”;. Ở đây, dấu phân cách là /, hello là mẫu đang được tìm kiếm (pattern) và i là công cụ sửa đổi/bổ từ (modifier) làm cho tìm kiếm không phân biệt chữ hoa chữ thường.

Bất kỳ ký tự nào ngoại trừ bảng chữ cái, số, dấu gạch chéo ngược hoặc dấu cách đều có thể là dấu phân cách. Dấu phân cách phổ biến được sử dụng phổ biến nhất là dấu gạch chéo lên phía trước (/). Tuy nhiên, nếu bản thân mẫu chứa dấu gạch chéo lên (\), thì người ta có thể chọn bất kỳ ký tự nào khác làm dấu phân cách, chẳng hạn như # hoặc ~.

Có 2 loại biểu thức chính quy:

  • POXIS Regex
  • PERL Regex(PERL Compatible Regular Expression – PCRE)

Portable Operating System Interface for uniX (POSIX) là tập hợp các tiêu chuẩn được sử dụng để xác định một số chức năng cần được hỗ trợ bởi hệ điều hành UNIX. Một tiêu chuẩn như vậy xác định hai loại biểu thức chính quy. Biểu thức chính quy POSIX chỉ được sử dụng với dữ liệu văn bản. Nếu dữ liệu chứa NUL-byte (\x00), thì biểu thức chính quy sẽ hiểu rằng đó là phần cuối của chuỗi và việc so khớp sẽ không xảy ra sau điểm đó.

Cấu trúc của biểu thức chính quy POSIX gần giống với biểu thức số học, Nhiều phần tử kết hợp và tạo thành các biểu thức rất phức tạp. Bất kỳ biểu thức nào khớp với một ký tự là biểu thức chính quy đơn giản nhất.

Dấu ngoặc vuông ([ ]) có thể được sử dụng để tìm một dãy ký tự. Ví dụ: nếu tìm thấy một kết quả khớp cho bất kỳ chữ số nào trong khoảng từ 0 đến 9, thì biểu thức là [0-9]. Để khớp ký tự chữ thường giữa a và z, hãy sử dụng biểu thức [a-z]. Để khớp một ký tự giữa chữ hoa A và chữ hoa Z, hãy sử dụng biểu thức [a-z]. Để tìm một ký tự khớp giữa chữ thường a và chữ hoa Z, hãy sử dụng biểu thức [a-Z].

Các hàm Regexp POSIX của PHP

  • ereg(): Sử dụng chức năng này, tìm kiếm một chuỗi cho một mẫu.
  • ereg_replace(): Hàm này giúp tìm kiếm một mẫu và nếu tìm thấy thì
    thay thế nó bằng sự thay thế mong muốn.
  • eregi(): Hàm không phân biệt chữ hoa chữ thường này, tìm kiếm một chuỗi được chỉ định chuỗi trong suốt một chuỗi được chỉ định theo mẫu.
  • eregi_replace(): Chức năng này hoạt động tương tự như creg replace(). Tuy nhiên, đây không phải là trường hợp nhạy cảm.
  • split(): Hàm này giúp chia một chuỗi thành nhiều phần tử khác nhau. Các ranh giới cho từng phần tử dựa trên cách mẫu chuỗi xảy ra.
  • splici(): Chức năng không phân biệt chữ hoa chữ thường này tương tự như hàm spit().
  • squi_regcase(): Hàm này giúp chuyển đổi tham số đầu vào ký tự của chuỗi thành một biểu thức trong ngoặc có chứa hai ký tự.

Tuy nhiên, thời điểm hiện tại các hàm này hiện tại trên offical docs php đã outdate, chỉ sử dụng được cho PHP 5 nên chúng ta sử dụng các hàm PERL Compatible Regular Expression như sau:

  • preg_filter() – thực hiện tìm kiếm những kết quả theo biểu thức chính quy và thay thế
  • preg_grep() – trả về mảng các kết quả mà match với pattern
  • preg_last_error() – trả về lỗi code của lần thực thi regex PCRE cuối cùng
  • preg_match() && preg_match_all() – thực thi khớp với biểu thức chính quy.
  • preg_quote() – đặt dấu gach chéo ngược trước mỗi ký tự là ký tự đặc biệt trong biểu thức chính quy trong chuỗi đầu vào
  • preg_replace() – thực thi tìm kiếm những phần tử nào mà khớp với biểu thức chính quy và thay thế nó với chuỗi mà ta cần.
  • preg_replace_callback() – thực thi tìm kiếm những phần tử nào mà khớp với biểu thức chính quy và thay thế nó với chuỗi mà ta cần và sau đó kết quả sẽ dùng để thực hiện 1 hàm callback khác. Kết quả cuối cùng trả về là input sau khi đã replace và đi qua hàm callback đó.
  • preg_split() – chia chuỗi bằng biểu thức chính quy

Ví dụ hàm preg_match():

<?php
$email = "[email protected]";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $email)) {
    echo "Valid email address: $email";
} else {
    echo "Invalid email address:  $email";
}

Xem thêm tại offical docs PHP: https://www.php.net/manual/en/book.pcre.php

Bài viết liên quan:

Hướng dẫn sử dụng xdebug để gỡ lỗi PHP bằng visual studio code môi trường windows
Hướng dẫn cấu hình Extension live server tự động tải lại PHP khi cập nhật file trên visual studio code
Kỹ thuật AJAX trong PHP
Làm việc với JSON trong PHP
Chuyển hướng trình duyệt, download file bằng HTTP Header trong PHP
Một số cải tiến mới của PHP 8
Nhận dạng trình duyệt và nền tảng trong PHP
Từ khóa final, static, overloading và magic method trong PHP
Abstract Class (lớp trừu tượng) trong PHP
Interface trong hướng đối tượng PHP
Method (phương thức), public,private,protected, method overriding trong hướng đối tượng PHP
Iterable và iterator trong PHP

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×