Php/php ref regex
来自菜鸟教程
PHP正则表达式函数
PHP正则表达式简介
正则表达式使您可以搜索和替换字符串中的模式。
安装
PHP正则表达式函数是PHP核心的一部分。使用这些功能无需安装。
运行时配置
php.ini中的这些设置可用于限制在评估正则表达式时使用的时间或资源。
Name | 默认 | 描述 | 多变 |
---|---|---|---|
pcre.backtrack_limit | “ 1000000” | 正则表达式引擎在评估表达式时允许执行的最大回溯次数。(自PHP 5.2起可用) | PHP_INI_ALL |
pcre.recursion_limit | “ 100000” | 正则表达式引擎在评估表达式时可以达到的最大递归深度。(自PHP 5.2起可用) | PHP_INI_ALL |
pcre.jit | “ 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() | 通过在正则表达式前加反斜杠来转义具有特殊含义的字符 |
正则表达式修饰符
修饰符可以更改执行搜索的方式。
修改 | 描述 |
---|---|
i | 执行不区分大小写的搜索 |
m | 执行多行搜索(搜索字符串开头或结尾的模式将匹配每行的开头或结尾) |
u | 启用正确匹配的UTF-8编码模式 |
正则表达式模式
方括号用于查找一系列字符:
表达 | 描述 |
---|---|
[abc] | 从方括号之间的选项中找到一个字符 |
[^ abc] | 在括号之间找到任何字符 |
[0-9] | 在0到9的范围内找到一个字符 |
元字符
元字符是具有特殊含义的字符:
元字符 | 描述 |
---|---|
分隔的任何一种模式的匹配项如:猫|狗|鱼 | |
. | 仅查找任何字符的一个实例 |
^ | 查找匹配项作为字符串的开头,例如:^ Hello |
$ | 在字符串末尾查找匹配项,如:World $ |
\d | 找一个数字 |
\s | 查找空格字符 |
\b | 在这样的单词开头找到匹配项:\ bWORD,或者在这样的单词结尾找到匹配项:WORD \ b |
\ uxxxx | 查找由十六进制数字xxxx指定的Unicode字符 |
量词
量词定义数量:
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个的字符串
n |
n* | 匹配包含零个或多个出现的任何字符串
n |
n? | 匹配包含零或一出现的任何字符串
n |
n{x} | 匹配任何包含以下序列的字符串
X n 's |
n {x,y} | 匹配任何包含X到Y序列的字符串
n 's |
n {x,} | 匹配任何包含至少X序列的字符串
n 's |
注意: 如果您的表达式需要搜索特殊字符之一,则可以使用反斜杠(\)进行转义。例如,要搜索一个或多个问号,可以使用以下表达式:$ pattern ='/ \?+ /';