硬汉工作室

搜索
热搜: 活动 交友 discuz

[正则] 正则替换例子

[复制链接]
发表于 2024-4-12 16:12:04 | 显示全部楼层 |阅读模式
1. 替换的内容
$str = '我是,你呢?';
$pattern = '/\[img\](.*?)\[\/img\]/';
$newMessage = preg_replace($pattern, '', $str); // 结果:我是,你呢?


2. 如果我只是想删除[img][/img],保留hello该怎么办呢?,这个,上面这个(.*?)可以用$1或者\1来引用。也就是可以这么写:$str = '我是,你呢?';
$pattern = '/\[img\](.*?)\[\/img\]/';
$newMessage = preg_replace($pattern, '$1', $str); // 结果:我是hello,你呢?
第一个小括号的引用用$1,第二个用$2,以此类推

3.如果想保留hello,还可以用preg_replace_callback函数,给个例子:
$str = '我是,你呢?';
$pattern = '/\[img\](.*?)\[\/img\]/';
$newMessage = preg_replace_callback($pattern, 'foo', $str);
function foo($matches) {
    return $matches[1];
}
符合正则的会调用foo函数,$matches就是匹配到的内容,foo函数的返回值会替换匹配的内容,这个例子就会把替换成hello









有关PHP系统、Discuz或网站等各种问题,可以联系QQ1069971363寻求付费支持
Discuz插件商店:http://addon.dismall.com/?@56030.developer
回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|硬汉工作室 ( 冀ICP备13021567号-9 )

GMT+8, 2024-5-2 18:47 , Processed in 0.125612 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表