Các hàm biểu thức chính quy trong PHP
Giới thiệu Cụm từ Thông dụng trong PHP
Biểu thức chính quy cho phép bạn tìm kiếm và thay thế các mẫu trong chuỗi.
Cài đặt
Các hàm biểu thức chính quy PHP là một phần của lõi PHP. Không cần cài đặt để sử dụng các chức năng này.
Cấu hình thời gian chạy
Các cài đặt này trong php.ini có thể được sử dụng để giới hạn lượng thời gian hoặc tài nguyên được sử dụng khi đánh giá biểu thức chính quy.
Name | Default | Description | Changeable |
---|---|---|---|
pcre.backtrack_limit | "1000000" | The maximum number of backtracks that the regular expression engine is allowed to do while evaluating an expression. (available since PHP 5.2) | PHP_INI_ALL |
pcre.recursion_limit | "100000" | The maximum recursion depth that the regular expression engine is permitted to reach while evaluating an expression. (available since PHP 5.2) | PHP_INI_ALL |
pcre.jit | "1" | When set to "1" this enables PCRE's (Perl-Compatible Regular Expressions) just-in-time compilation. (available since PHP 7.0) | PHP_INI_ALL |
Các hàm biểu thức chính quy trong PHP
Function | Description |
---|---|
preg_filter() | Returns a string or an array with pattern matches replaced, but only if matches were found |
preg_grep() | Returns an array consisting only of elements from the input array which matched the pattern |
preg_last_error() | Returns an error code indicating the reason that the most recent regular expression call failed |
preg_match() | Finds the first match of a pattern in a string |
preg_match_all() | Finds all matches of a pattern in a string |
preg_replace() | Returns a string where matches of a pattern (or an array of patterns) are replaced with a substring (or an array of substrings) in a given string |
preg_replace_callback() | Given an expression and a callback, returns a string where all matches of the expression are replaced with the substring returned by the callback |
preg_replace_callback_array() | Given an array associating expressions with callbacks, returns a string where all matches of each expression are replaced with the substring returned by the callback |
preg_split() | Breaks a string into an array using matches of a regular expression as separators |
preg_quote() | Escapes characters that have a special meaning in regular expressions by putting a backslash in front of them |
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 = '/ \? + /';