IMG-LOGO
×

Giáo Trình Môn Học

Khoá học lập trình PHP/MySQL

Kiến Thức Căn Bản

[Video] Lập trình PHP basic - Biến, hằng, toán tử và mảng trong PHP - lập trình PHP [Video] Hướng dẫn lập trình PHP căn bản với if, else if, else, switch- lập trình PHP [Video] Lập trình PHP basic - for, while, do while, foreach, function - lập trình PHP [Video] Hướng dẫn lập trình PHP căn bản - Function - lập trình PHP

Tìm Hiểu Form GET/POST

[Video] Hướng dẫn học lập PHP căn bản - Tìm hiểu GET/POST - lập trình PHP [Video] Hướng dẫn tạo dự án calculator bang PHP + JS - Lập trình PHP [Video] Ajax: Hướng dẫn tạo máy tính bằng PHP - Sử dụng Ajax - GET/POST form trong PHP - Lập trình PHP [Video] Form đăng ký tài khoản bằng PHP (GET/POST)- Form PHP [Video] huong dan chua bai tap dang ky & login su dung GET & POST - Lập trình PHP

Cookie

[Video] Lập trình PHP căn bản - cookie - lập trình PHP [Video] Hướng dẫn tìm hiểu cookie - Quản lý xác minh tài khoản login - cookie - Lập trình PHP/MySQL

Session

[Video] Lập trình PHP căn bản - session - lập trình PHP [Video] Thành thạo API - Ajax trọng dự án - Thành thạo về Session - Lập trình PHP/MySQL

Kết Nối CSDLPHP/ MySQL

[Video] Thực hiện truy vấn dữ liệu từ PHP tới MySql - Khoá học PHP căn bản [Video] Kết nối PHP với MySQL (Thực hiện insert) - Khoá PHP căn bản [Video] Tối ưu hoá code mysql + php, tạo thư viện chung trong lập trình PHP căn bản [Video] Tạo web tin tức - PHP/MySQL [Video] Thực hiện đăng nhập tài khoản sử dụng php mysql - khoá học PHP căn bản [Video]Cookie: Xây dựng cart (giỏ hàng) + checkout (thanh toán) sử dụng Cookie & localStorage - Lập trình PHP/MySQL [Video] Session: Xây dựng web hoàn thiện gồm cart page + checkout page + complete page - Lập trình PHP/MySQL [Video] Trang quản lý sản phẩm php - Lập trình PHP [Video] Viết website quản lý sinh viên PHP & MySQL - Lập Trình PHP [Video] Hướng dẫn phân trang bằng PHP - Lập trình PHP

OOP & Nâng Cao

[Video] OOP - Lập trình php [Video] Kế thừa OOP - Lập trình php [Video] Nắm chắc token login - Hướng dẫn login login multi devices, browsers trong lập trình PHP/MySQL [Video] Trở thành chuyên gia API Server - Hướng dẫn tất tần tật về API từ Server tới Client - Lập trình PHP

Examination & Ôn Tập

[Video] Kiểm Tra 60 phút - Test nhanh - Khóa học PHP

Thực Chiến: Web Bán Hoa Quả

[Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 1 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 2 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Summernote editor - Phần 3 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 4 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 5

Thực Chiến: Web Bán Hàng

[Video] PHẦN 1 | Giới thiệu dự án-công nghệ sử dụng - phân tích chức năng dự án | Website bán hàng PHP/MySQL [Video] Phần 2 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL [Video] Phần 3 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL [Video] Phần 19 FINAL | Hướng dẫn cài đặt dự án từ source code mẫu | Web bán hàng PHP/MySQL

Hướng Dẫn Deploy Dự Án

[Video] Hướng dẫn upload website lên server -Hướng dẫn deploy project php trên heroku - Cài đặt Heroku




Trang Chủ Học PHP PHP Regular Expressions - RegExp - Biểu thức chính quy

PHP Regular Expressions - RegExp - Biểu thức chính quy

by GokiSoft.Com - 11:42 15/06/2020 2,370 Lượt Xem

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

Regular expression là một chuỗi các ký tự tạo thành một mẫu tìm kiếm (search pattern). Khi bạn tìm kiếm dữ liệu trong một văn bản, bạn có thể sử dụng pattern này để mô tả những gì bạn cần tìm kiếm.

Một biểu thức chính quy có thể là một ký tự đơn hoặc một mẫu (pattern) phức tạp hơn.

Biểu thức chính quy được sử dụng để tìm kiếm văn bản và thay thế văn bản.


Cú pháp

Trong PHP, biểu thức chính quy là các chuỗi gồm các dấu phân cách, một mẫu và các biến tố tùy chọn.

$exp = "/w3schools/i";

Trong ví dụ trên, / là dấu phân cách, w3schools là mẫu đang được tìm kiếm, và i là một modifier làm cho trường hợp tìm kiếm case-insensitive (không phân biệt chữ hoa/thường).

Dấu phân cách có thể là bất kỳ ký tự nào mà không phải là chữ cái, số, dấu gạch chéo ngược hoặc dấu cách. Dấu phân cách phổ biến nhất là dấu /, nhưng khi pattern của bạn chứa các dấu gạch chéo / thì bạn có thể chọn dấu phân cách khác như # hoặc ~.


Regular Expression Functions - Hàm về RegExp

PHP cung cấp một loạt các hàm để sử dụng các biểu thức chính quy. Hàm preg_match()preg_match_all() và preg_replace() là một số trong những hàm thường sử dụng:

FunctionDescription
preg_match()Trả về 1 nếu pattern được tìm thấy trong chuỗi và 0 nếu không thấy
preg_match_all()Trả về số lần pattern được tìm thấy trong chuỗi, cũng có thể là 0
preg_replace()Trả về chuỗi mới thay thế chuỗi cũ mà khớp với pattern

preg_match()

Hàm preg_match() sẽ cho biết một chuỗi có khớp với pattern không.

Ví dụ

Sử dụng biểu thức chính quy để thực hiện tìm kiếm không phân biệt chữ hoa chữ thường cho "w3schools" trong chuỗi:

<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo preg_match($pattern, $str); // Outputs 1
?>

preg_match_all()

Hàm preg_match() sẽ cho bạn biết có bao nhiêu kết quả khớp với pattern trong một chuỗi.

Ví dụ

Sử dụng biểu thức chính quy để thực hiện đếm số lần xuất hiện của "ain" trong chuỗi, không phân biệt hoa thường:

<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>

preg_replace()

Hàm preg_match() sẽ thay thế tất cả các kết quả khớp pattern trong một chuỗi bằng một chuỗi khác.

Ví dụ

Sử dụng biểu thức chính quy không phân biệt chữ hoa chữ thường để thay thế Microsoft bằng W3Schools trong một chuỗi:

<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str); // Outputs "Visit W3Schools!"
?>

Regular Expression Modifiers

Các Modifier có thể thay đổi cách thực hiện tìm kiếm.

ModifierDescription
iThực hiện tìm kiếm không phân biệt chữ hoa chữ thường
mThực hiện tìm kiếm nhiều dòng (các pattern tìm kiếm ở đầu hoặc cuối chuỗi sẽ khớp với đầu hoặc cuối của mỗi dòng)
uCho phép khớp chính xác patterns được mã hóa UTF-8

Regular Expression Patterns

Ngoặc vuông được sử dụng để tìm một phạm vi các ký tự:

ExpressionDescription
[abc]Tìm ký tự có trong dấu ngoặc
[^abc]Tìm ký tự khác với các ký tự trong ngoặc
[0-9]Tìm một ký tự số phạm vi từ 0 đến 9

Metacharacters

Metacharacters là những ký tự có ý nghĩa đặc biệt:

MetacharacterMô tả
|Tìm một kết quả khớp bất kỳ một trong các pattern được phân tách bằng dấu thẳng đứng "|" như: cat|dog|fish
.Chỉ tìm một trường hợp của bất kỳ ký tự
^Tìm một kết quả khớp mà là bắt đầu của một chuỗi, vd: ^Hello
$Tìm một kết quả khớp ở cuối chuỗi, vd: World$
\dTìm một số
\sTìm ký tự khoảng trắng (dấu cách - space)
\bTìm kết quả khớp ở đầu từ word: \bWORD, hoặc cuối từ word như sau: WORD\b
\uxxxxTìm ký tự Unicode được chỉ định bởi số thập lục phân - hexa xxxx

Quantifiers

Quantifiers xác định số lượng:

QuantifierDescription
n+Khớp với bất kỳ chuỗi nào chứa ít nhất một n
n*Khớp với bất kỳ chuỗi nào không chứa hoặc nhiều lần xuất hiện của n
n?Khớp với bất kỳ chuỗi nào không chứa hoặc một lần xuất hiện của n
n{x}Khớp với bất kỳ chuỗi nào chứa n x lần đầu tiên
n{x,y}Khớp bất kỳ chuỗi nào chứa n X đến Y lần đầu tiên
n{x,}Khớp với bất kỳ chuỗi nào chứa n từ x lần trở đi
Note: Nếu biểu thức của bạn cần tìm kiếm một trong các ký tự đặc biệt, bạn có thể sử dụng dấu gạch chéo ngược (\) để dùng chúng theo đúng nghĩa đen. Ví dụ: để tìm kiếm một hoặc nhiều dấu hỏi, bạn có thể sử dụng biểu thức sau: $pattern = '/\?+/';

Grouping - Phân nhóm

Bạn có thể sử dụng dấu ngoặc đơn ( ) để áp dụng quantifiers cho toàn bộ các pattern. Chúng cũng có thể được sử dụng để chọn các phần của pattern để sử dụng như một phần tìm kiếm nhỏ.

Ví dụ

Sử dụng grouping để tìm kiếm từ "banana" bằng cách tìm kiếm ba và theo sau bởi hai trường hợp na:

<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // Outputs 1
?>

Bình luận



Chia sẻ từ lớp học

Phân Loại Bài Viết

Tài Liệu Tham Khảo

Đã sao chép!!!