如何将 [link](#) 替换为 <a href="#">link</a>?
how can I replace [link](#) to <a href="#">link</a>?
我想做类似 Whosebug 的事情。实际上将此样式 []()
更改为此样式 <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
更改为 #
,我该怎么做?
你想看看preg_replace()
,有了这个你可以用正则表达式来替换它,例如
$str = preg_replace("/\[(.*?)\]\((.*?)\)/", "<a href=''></a>", $str);
正则表达式解释:
\[(.*?)\]\((.*?)\)
- \[ 匹配字符 [ literally
- 第一个捕获组 (.*?)
- .*? 匹配任何字符(换行符除外)
- 量词:*?介于零次和无限次之间,次数越少越好,按需扩展[懒惰]
- \] 字面上匹配字符 ]
- \( 匹配字符 ( literally
- 第 2 个捕获组 (.*?)
- .*? 匹配任何字符(换行符除外)
- 量词:*?介于零次和无限次之间,次数越少越好,按需扩展[懒惰]
- \) 字面上匹配字符 )
我想做类似 Whosebug 的事情。实际上将此样式 []()
更改为此样式 <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
更改为 #
,我该怎么做?
你想看看preg_replace()
,有了这个你可以用正则表达式来替换它,例如
$str = preg_replace("/\[(.*?)\]\((.*?)\)/", "<a href=''></a>", $str);
正则表达式解释:
\[(.*?)\]\((.*?)\)
- \[ 匹配字符 [ literally
- 第一个捕获组 (.*?)
- .*? 匹配任何字符(换行符除外)
- 量词:*?介于零次和无限次之间,次数越少越好,按需扩展[懒惰]
- .*? 匹配任何字符(换行符除外)
- \] 字面上匹配字符 ]
- \( 匹配字符 ( literally
- 第 2 个捕获组 (.*?)
- .*? 匹配任何字符(换行符除外)
- 量词:*?介于零次和无限次之间,次数越少越好,按需扩展[懒惰]
- .*? 匹配任何字符(换行符除外)
- \) 字面上匹配字符 )