PHP 正则表达式 功能
PHP 正则表达式介绍
正则表达式允许您搜索和替换字符串中的模式。
安装
PHP 正则表达式函数是 PHP 核心的一部分。无需安装即可使用这些函数。
运行时配置
php.ini 中的这些设置可用于限制评估正则表达式时所使用的时间或资源量。
姓名 | 默认 | 描述 | 多变 |
---|---|---|---|
pcre.backtrack_limit | "1000000" | 正则表达式引擎在评估表达式时允许执行的最大回溯次数。(自 PHP 5.2 起可用) | PHP_INI_ALL |
pcre.recursion_limit | "100000" | 正则表达式引擎在评估表达式时允许达到的最大递归深度。(自 PHP 5.2 起可用) | PHP_INI_ALL |
程序库 | "1" | 当设置为“1”时,这将启用 PCRE(Perl 兼容正则表达式)的即时编译。(自 PHP 7.0 起可用) | PHP_INI_ALL |
PHP 正则表达式函数
功能 | 描述 |
---|---|
preg_filter() | 返回替换了模式匹配的字符串或数组,但前提是找到匹配项 |
preg_grep() | 返回仅由与模式匹配的输入数组元素组成的数组 |
preg_last_error() | 返回错误代码,指示最近的正则表达式调用失败的原因 |
preg_match() | 查找字符串中第一个符合模式的匹配项 |
preg_match_all() | 查找字符串中所有符合某个模式的匹配项 |
preg_replace() | 返回一个字符串,其中模式(或模式数组)的匹配项被给定字符串中的子字符串(或子字符串数组)替换 |
preg_replace_callback() | 给定一个表达式和一个回调,返回一个字符串,其中表达式的所有匹配项都被回调返回的子字符串替换 |
preg_replace_callback_array() | 给定一个将表达式与回调相关联的数组,返回一个字符串,其中每个表达式的所有匹配项都被替换为回调返回的子字符串 |
preg_split() | 使用正则表达式的匹配作为分隔符,将字符串拆分为数组 |
preg_quote() | 通过在正则表达式中具有特殊含义的字符前面添加反斜杠来转义这些字符 |
正则表达式修饰符
修饰符可以改变搜索的执行方式。
修改器 | 描述 |
---|---|
我 | 执行不区分大小写的搜索 |
米 | 执行多行搜索(搜索字符串开头或结尾的模式将匹配每行的开头或结尾) |
你 | 启用 UTF-8 编码模式的正确匹配 |
正则表达式模式
括号用于查找字符范围:
表达 | 描述 |
---|---|
[英文] | 从括号内的选项中查找一个字符 |
[^abc] | 查找不在括号内的任意字符 |
[0-9] | 从 0 到 9 范围内查找一个字符 |
元字符
元字符是具有特殊含义的字符:
元字符 | 描述 |
---|---|
| | 查找由 | 分隔的任意一个模式的匹配项,例如:cat|dog|fish |
. | 仅查找任意字符的一个实例 |
^ | 查找与字符串开头匹配的内容,例如:^Hello |
$ | 在字符串末尾查找匹配项,例如:World$ |
\d | 查找数字 |
\s | 查找空白字符 |
\b | 在单词开头查找匹配项,如下所示:\bWORD,或在单词结尾查找匹配项,如下所示:WORD\b |
\uxxxx | 查找十六进制数 xxxx 指定的 Unicode 字符 |
量词
量词定义数量:
量词 | 描述 |
---|---|
n+ | 匹配至少包含一个 n |
n* | 匹配包含零次或多次出现的任意字符串 n |
否? | 匹配包含零次或一次出现的任意字符串 n |
n{x} | 匹配包含以下序列的任何字符串 X n的 |
n{x,y} | 匹配任何包含 X 到 Y 序列的字符串 n的 |
n{x,} | 匹配任何包含至少 X 个序列的字符串 n的 |
笔记: 如果您的表达式需要搜索某个特殊字符,则可以使用反斜杠 ( \ ) 来转义它们。例如,要搜索一个或多个问号,您可以使用以下表达式:$pattern = '/\?+/';