Cụm từ thông dụng trong PHP
Biểu thức chính quy là gì?
Biểu thức chính quy là một chuỗi các ký tự tạo thành một mẫu tìm kiếm. Khi bạn tìm kiếm dữ liệu trong một văn bản, bạn có thể sử dụng mẫu tìm kiếm này để mô tả những gì bạn đang tìm kiếm.
Biểu thức chính quy có thể là một ký tự đơn hoặc một mẫu phức tạp hơn.
Biểu thức chính quy có thể được sử dụng để thực hiện tất cả các loại hoạt độ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 bao gồm các dấu phân cách, một mẫu và các bổ ngữ 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 công cụ sửa đổi giúp tìm kiếm không phân biệt chữ hoa chữ thường.
Dấu phân cách có thể là bất kỳ ký tự nào 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 gạch chéo về phía trước (/), nhưng khi mẫu của bạn chứa dấu gạch chéo lên phía trước, bạn có thể chọn các dấu phân cách khác như # hoặc ~.
Hàm biểu thức chính quy
PHP cung cấp nhiều hàm cho phép bạn sử dụng các biểu thức chính quy. Các
hàm và preg_match()
là một số trong những hàm thường được sử dụng nhất:preg_match_all()
preg_replace()
Function | Description |
---|---|
preg_match() | Returns 1 if the pattern was found in the string and 0 if not |
preg_match_all() | Returns the number of times the pattern was found in the string, which may also be 0 |
preg_replace() | Returns a new string where matched patterns have been replaced with another string |
Sử dụng preg_match ()
Hàm preg_match()
sẽ cho bạn biết liệu một chuỗi có chứa các kết quả phù hợp với một mẫu hay không.
Thí dụ
Sử dụng một 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 một chuỗi:
<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo
preg_match($pattern, $str); // Outputs 1
?>
Sử dụng preg_match_all ()
Hàm preg_match_all()
sẽ cho bạn biết có bao nhiêu kết quả phù hợp được tìm thấy cho một mẫu trong một chuỗi.
Thí dụ
Sử dụng một biểu thức chính quy để đếm số lần xuất hiện của "ain" trong một chuỗi không phân biệt chữ hoa chữ thường:
<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>
Sử dụng preg_replace ()
Hàm preg_replace()
sẽ thay thế tất cả các kết quả phù hợp của mẫu trong một chuỗi bằng một chuỗi khác.
Thí 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!"
?>
Công cụ sửa đổi biểu thức chính quy
Các từ bổ nghĩa có thể thay đổi cách thực hiện tìm kiếm.
Modifier | Description |
---|---|
i | Performs a case-insensitive search |
m | Performs a multiline search (patterns that search for the beginning or end of a string will match the beginning or end of each line) |
u | Enables correct matching of UTF-8 encoded patterns |
Mẫu biểu thức chính quy
Dấu ngoặc nhọn được sử dụng để tìm một loạt các ký tự:
Expression | Description |
---|---|
[abc] | Find one character from the options between the brackets |
[^abc] | Find any character NOT between the brackets |
[0-9] | Find one character from the range 0 to 9 |
Metacharacters
Metacharacters là những ký tự có ý nghĩa đặc biệt:
Metacharacter | Description |
---|---|
| | Find a match for any one of the patterns separated by | as in: cat|dog|fish |
. | Find just one instance of any character |
^ | Finds a match as the beginning of a string as in: ^Hello |
$ | Finds a match at the end of the string as in: World$ |
\d | Find a digit |
\s | Find a whitespace character |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
Bộ định lượng
Bộ định lượng xác định các đại lượng:
Quantifier | Description |
---|---|
n+ | Matches any string that contains at least one n |
n* | Matches any string that contains zero or more occurrences of n |
n? | Matches any string that contains zero or one occurrences of n |
n{x} | Matches any string that contains a sequence of X n's |
n{x,y} | Matches any string that contains a sequence of X to Y n's |
n{x,} | Matches any string that contains a sequence of at least X n's |
Lưu ý: 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 (\) để loại bỏ chúng. Ví dụ: để tìm kiếm một hoặc nhiều dấu chấm hỏi, bạn có thể sử dụng biểu thức sau: $ pattern = '/ \? + /';
Phân nhóm
Bạn có thể sử dụng dấu ngoặc đơn ( )
để áp dụng bộ định lượng cho toàn bộ các mẫu. Chúng cũng có thể được sử dụng để chọn các phần của mẫu được sử dụng làm đối sánh.
Thí dụ
Sử dụng nhóm để tìm kiếm từ "banana" bằng cách tìm ba , theo sau là hai trường hợp na :
<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo
preg_match($pattern, $str); // Outputs 1
?>
Hoàn thành tham chiếu RegExp
Để có tài liệu tham khảo đầy đủ, hãy truy cập Toàn bộ Tài liệu Tham khảo Cụm từ Thông dụng PHP của chúng tôi .
Tham chiếu chứa các mô tả và ví dụ về tất cả các hàm Biểu thức chính quy.