为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 php 正则表达式制作 html 链接

如何使用 php 正则表达式制作 html 链接

PHP
30秒到达战场 2022-12-11 09:14:21
我的字符串[[https://example.com|link]]转换<a href="https://example.com>link</a>我的正则表达式是/\[{2}(.*?)\|(.*?)\]{2}/s但它不起作用。我是 php 正则表达式的新手。
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

你可以使用

preg_replace('~\[\[((?:(?!\[\[).)*?)\|(.*?)]]~s', '<a href="$1">$2</a>', $string)

请参阅正则表达式演示

细节

  • \[\[- 一个[[子串

  • ((?:(?!\[\[).)*?)- 第 1 组($1在替换模式中指该组内的值):任何字符 ( .),出现 0 次或多次但尽可能少 ( *?),不启动[[字符序列 ( (?!\[\[))

  • \|- 一个|字符

  • (.*?)- 第 2 组 ( $2):

  • ]]- 一个子]]字符串。

请参阅PHP 演示

$string = "[[some_non-matching_text]] [[https://example.com|link]] [[this is not matching either]] [[http://example2.com|link2]]";

echo preg_replace('~\[\[((?:(?!\[\[).)*?)\|(.*?)]]~s', '<a href="$1">$2</a>', $string);

// => [[some_non-matching_text]] <a href="https://example.com">link</a> [[this is not matching either]] <a href="http://example2.com">link2</a>


查看完整回答
反对 回复 2022-12-11
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信