You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP将字符串中##包裹内容替换为<strong>标签

解决PHP中##包裹内容替换为标签的问题

直接用str_replace会把所有##都替换成起始<strong>标签,没法成对生成闭合标签。这种场景用正则表达式的preg_replace就能完美解决,它可以精准匹配成对的##及其中间的内容。

直接上可用代码:

// 原始字符串
$toconvert = "Hello my name is ##John##
This is my ##question##
Thank you for ##reading## and giving your ##Answer##";

// 正则替换:匹配##包裹的内容,替换为<strong>包裹
$converted = preg_replace('/##(.*?)##/', '<strong>$1</strong>', $toconvert);

// 输出结果
echo $converted;

代码说明

  • 正则表达式/##(.*?)##/:
    • ##:匹配前后的分隔符
    • (.*?):非贪婪匹配捕获##之间的所有内容(非贪婪模式能避免把多个##段的内容连在一起匹配,比如不会把##John##...##question##当成一个整体)
    • $1:指代捕获到的##之间的内容,替换后自动生成<strong>捕获内容</strong>的结构

str_replace之所以不行,是因为它是全局替换所有匹配项,会把每一个##都换成<strong>,自然就没有闭合标签了,正则是这类成对替换场景的最优解。

内容的提问来源于stack exchange,提问作者PTTW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:20:21