gpt4 book ai didi

php - 正则表达式替换PHP中字符串中的标签

转载 作者:搜寻专家 更新时间:2023-10-31 21:34:07 25 4
gpt4 key购买 nike

我正在使用下面的 PHP 和正则表达式在一个巨大的字符串中搜索

[LINK]www.anyurl.com[/LINK]

并将其替换为:

<a href="http://www.anyurl.com">http://www.anyurl.com</a>

如果 url 前面不存在 http 或 ftp,则在前面加上 http://。

$re = '/\[LINK]((?:(?!(http|ftp)|\[\/LINK]).)*)\[\/LINK]/i'; 
$subst = '[LINK]http://$1[/LINK]';
$xtext = preg_replace($re, $subst, $xtext, 1);
$xtext = preg_replace("/(\[LINK\])(\S*)(\[\/LINK])/", "<a href=\"$2\" target='_blank'>$2</a>", $xtext);

我的问题是它似乎只对它遇到的第一个匹配项有效,对文档中的其他 [LINK]www.urls.com[/LINK] 无效。文档是 $xtext

最佳答案

哎呀,我刚刚发现了我的错误,而且很简单。在我的第三行:

$xtext = preg_replace($re, $subst, $xtext, 1);

我在 preg_replace 的末尾有 1,即替换一次。这应该设置为 -1 或留空以替换所有。

关于php - 正则表达式替换PHP中字符串中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23964143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com