欢迎来到北京社交动力网络科技有限公司
建站资讯

当前位置: 首页 > 建站资讯 > 建站教程 > PHP教程

php正则替换函数的整理

作者:APP制作 来源:php 教程日期:2025-12-03
PHP中常用preg_replace和preg_replace_callback进行正则替换,前者用于简单替换,支持模式修饰符及批量处理数组;后者通过回调函数实现复杂逻辑,如动态修改匹配内容,更安全灵活。

php正则替换函数的整理

PHP中常用的正则替换函数主要是preg_replacepreg_replace_callback,它们都基于PCRE(Perl Compatible Regular expressions)正则引擎,功能强大且灵活。下面对这两个核心函数进行整理说明。

preg_replace — 执行正则表达式的搜索和替换

语法:

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

参数说明:

$pattern:要搜索的模式,可以是字符串或字符串数组。 $replacement:用于替换的字符串或字符串数组。 $subject:要搜索和替换的原始字符串或数组。 $limit:可选,每个模式在每个 subject 上执行替换的最大次数,默认为-1(无限制)。 $count:可选,用于接收实际替换次数的变量。

示例:

立即学习“PHP免费学习笔记(深入)”;

$text = '联系电话:13812345678';
$pattern = '/\d{11}/';
$replacement = '***********';
$result = preg_replace($pattern, $replacement, $text);
// 输出:联系电话:***********

支持修饰符:

i:忽略大小写 m:多行模式 s:让.匹配换行符 u:支持UTF-8$text = "Hello\nWorld";
echo preg_replace('/^World/m', 'PHP', $text); // 多行模式下匹配第二行开头

preg_replace_callback — 使用回调函数进行正则替换

当替换逻辑较复杂时,比如需要动态处理匹配内容,使用该函数更合适。

北极象沉浸式AI翻译 北极象沉浸式AI翻译

免费的北极象沉浸式AI翻译 - 带您走进沉浸式AI的双语对照体验

北极象沉浸式AI翻译 24 查看详情 北极象沉浸式AI翻译

语法:

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

参数说明:

$callback:每次匹配后调用的回调函数,接收匹配结果数组作为参数,返回替换字符串。

示例:将数字加1

$text = '价格是100元和200元';
$result = preg_replace_callback('/\d+/', function($matches) {
return $matches[0] + 1;
}, $text);
// 输出:价格是101元和201元

高级用法:反转匹配到的单词

$text = "hello world";
$result = preg_replace_callback('/[a-z]+/', function($match) {
return strrev($match[0]);
}, $text);
// 输出:olleh dlrow

常见注意事项

模式必须用分隔符包围,如//、##等,避免与内容冲突时可用其他符号。 如果$subject是数组,替换会在每个元素上执行。 反向引用在$replacement中可用$1、$2等,注意不要与变量混淆。 preg_replace存在被滥用导致代码注入的风险(如/e修饰符已被废弃),推荐使用preg_replace_callback代替。

小技巧:批量替换多个模式

$patterns = ['/\bapple\b/', '/\bbanana\b/'];
$replacements = ['苹果', '香蕉'];
$text = "I like apple and banana";
echo preg_replace($patterns, $replacements, $text);
// 输出:I like 苹果 and 香蕉

基本上就这些。掌握好preg_replace和preg_replace_callback,基本能应对大多数文本替换需求。关键在于写对正则模式,以及合理使用回调处理复杂逻辑。

以上就是php正则替换函数的整理的详细内容,更多请关注php中文网其它相关文章!

标签: php基础
上一篇: 在WordPress插件中向page.php添加自定义PHP代码的最佳实践
下一篇: 暂无

推荐建站资讯

更多>