PHP中如何替换仅知晓首尾内容的字符串?
用PHP正则实现字符串替换方案
完全没问题,这个需求用正则表达式结合PHP的preg_replace函数就能轻松搞定,我给你具体代码和详细解释:
基础实现代码
$str = "bla bla {video something} bla bla"; // 执行替换 $newStr = preg_replace('/\{video.*?\}/', '<iframe id="123"></iframe>', $str); // 输出结果:bla bla <iframe id="123"></iframe> bla bla echo $newStr;
正则表达式详解
这里用的正则/\{video.*?\}/各部分含义:
\{:转义左大括号,因为{在正则里是特殊字符(用于定义重复次数),转义后匹配字面量的{video:匹配固定的字符串video.*?:非贪婪匹配任意字符(默认不包含换行),*表示匹配0或多个,?让匹配尽可能短,避免把多个{video ...}块合并成一个匹配项\}:转义右大括号,匹配字面量的}
处理包含换行的情况
如果{video ...}里的内容包含换行符,需要给正则加上s修饰符(让.匹配换行符):
$str = "bla bla {video something\nwith multiple lines} bla bla"; $newStr = preg_replace('/\{video.*?\}/s', '<iframe id="123"></iframe>', $str); echo $newStr;
这样不管{video}后面跟的是什么内容(单行或多行),都能精准替换成你想要的iframe标签啦。
内容的提问来源于stack exchange,提问作者kramer65
相关产品推荐
相关产品推荐

