English | 简体中文 | 繁體中文
查询

preg_replace_callback()函数—用法及示例

「 执行正则表达式的搜索和替换操作,但不同于preg_replace()函数,它允许使用一个回调函数来替换匹配到的结果 」


函数名称:preg_replace_callback()

适用版本:PHP 4.0.5及以上版本

函数说明:preg_replace_callback()函数是用于执行正则表达式的搜索和替换操作,但不同于preg_replace()函数,它允许使用一个回调函数来替换匹配到的结果。

语法:string preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

参数说明:

  • $pattern:要匹配的正则表达式模式。
  • $callback:一个回调函数,用于替换匹配到的结果。该回调函数的参数是一个包含匹配到的结果的数组,返回替换后的字符串。
  • $subject:要进行搜索和替换的字符串。
  • $limit(可选):指定最大替换次数,默认为-1,表示替换所有匹配到的结果。
  • $count(可选):如果提供了该参数,它将接收替换的次数。

返回值:返回替换后的字符串,如果发生错误则返回NULL。

示例代码:

$text = "Hello, my name is John. I love PHP!";
$pattern = '/\b[A-Z]\w+\b/';

// 使用匿名函数作为回调函数
$result = preg_replace_callback($pattern, function($matches) {
    return strtoupper($matches[0]);
}, $text);

echo $result;
// 输出:HELLO, MY NAME IS JOHN. I LOVE PHP!

在上述示例中,我们首先定义了一个字符串$text,然后使用正则表达式模式$pattern来匹配所有以大写字母开头的单词。我们使用preg_replace_callback()函数来执行替换操作,其中回调函数使用了匿名函数的形式,将匹配到的结果转换为大写字母。最后,我们输出替换后的结果,即所有以大写字母开头的单词都被替换为大写形式。

补充纠错
下一个函数: preg_replace()函数
热门PHP函数
分享链接