如何将[link](#)替换为<a href="#">link</a>?

时间:2015-07-25 18:16:46

标签: php regex string str-replace

我想做一些像 stackoverflow 这样的事情。实际上将此样式f1更改为此样式[]()。这是我的尝试:

<a href=""></a>

但现在,我需要使用$str = '[link](#)'; $str = str_replace('[','<a href="',$str); // output: <a href="link](#) $str = str_replace(']','">',$str); // output: <a href="link">(#) $str = str_replace('(','',$str); // output: <a href="link">#) $str = str_replace(')','</a>',$str); // output: <a href="link">#</a> 更改link,我该怎么做?

1 个答案:

答案 0 :(得分:3)

你想看看preg_replace(),你可以使用正则表达式替换它,例如。

$str = preg_replace("/\[(.*?)\]\((.*?)\)/", "<a href='$2'>$1</a>", $str);

正则表达式解释:

\[(.*?)\]\((.*?)\)
  • \ [匹配字符[字面意思
  • 第一个捕获组(。*?)
    • 。*?匹配任何字符(换行符除外)
      • 量词: *?在零和无限次之间,尽可能少,根据需要进行扩展[懒惰]
  • \] 匹配字符]字面意思
  • \(匹配字符(字面意思
  • 第二个捕获组(。*?)
    • 。*?匹配任何字符(换行符除外)
      • 量词: *?在零和无限次之间,尽可能少,根据需要进行扩展[懒惰]
  • \)匹配字符)字面意思