2026-10-23 12:35:43
PHP正则表达式函数详解如下:
一、匹配与查找函数
preg_match()
功能:执行单次正则匹配,找到即停止
语法:int preg_match(string $pattern, string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0]]])
特点:
返回0(不匹配)或1(匹配)
可通过$matches获取捕获组
支持PREG_OFFSET_CAPTURE标记获取偏移量
示例:从URL提取主机名
preg_match_all()
功能:全局匹配所有结果
语法:int preg_match_all(string $pattern, string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0]]])
特点:返回所有匹配项(包括子组)
示例:匹配多个域名
preg_grep()
功能:数组元素匹配筛选
语法:array preg_grep(string $pattern, array $input [, int $flags = 0])
特点:可设置PREG_GREP_INVERT反向匹配
示例:筛选包含域名的数组元素
二、替换函数
preg_replace()
功能:正则替换
语法:mixed preg_replace(mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int &$count]])
特点:
支持字符串/数组参数
可使用反向引用(如$1)
示例:日期格式转换
preg_replace_callback()
功能:回调函数替换
语法:mixed preg_replace_callback(mixed $pattern, callable $callback, mixed $subject [, int $limit = -1 [, int &$count]])
特点:通过回调函数处理匹配内容
示例:年份递增处理
preg_filter()
功能:仅返回匹配替换结果
语法:同preg_replace()
特点:等价于preg_replace()但过滤非匹配项
三、分割函数
功能:正则分割字符串
语法:array preg_split(string $pattern, string $subject [, int $limit = -1 [, int $flags = 0]])
特点:
支持多种分隔标记(如PREG_SPLIT_NO_EMPTY)
可限制分割数量
示例:多分隔符处理文本
四、辅助函数
功能:转义正则特殊字符
语法:string preg_quote(string $str [, string $delimiter = NULL])
特点:自动转义.+*?[^]$(){}=!<>|:-等字符
示例:安全处理用户输入的正则表达式
使用建议: