在我努力构建类似stackoverflows链接系统的东西时,我试图做这样的事情;
$raw = '[[path.html|Link description]]';
$str = preg_replace('#\[(\?)|(\?)]#', '<a href="$1">$2</a>', $raw);
echo $str;
//$str should not be <a href="path.html">Link description</a>
这应该有效,但我一直得到与输出相同的文字。我的想法是将部分放在|
之前作为href
,将|
之后的部分作为链接描述。最后,我只是失败了。
我从一个woking的例子中得到了这个,但是在添加|
部分后我被卡住了。
答案 0 :(得分:1)
答案 1 :(得分:1)
逃脱管道:
$str = preg_replace('#\[(.+?)\|(.+?)\]#', '<a href="$1">$2</a>', $raw);
\?
字面上是一个问号。像上面那样改变你的正则表达式。