我正在尝试使用带有[google](http://google.com)
等结构的php来解析链接,到目前为止我已经得到了这个:
"/\[(.+?)\]((.+?\))/is"
我唯一无法工作的部分是带括号')'的部分。
任何帮助都会很棒!
[编辑]
@jari - 这是代码的一部分:
$find = array(
"@\n@",
"/[**](.+?)[**]/is",
"/\[(.+?)\]\((.+?)\)/is"
);
$replace = array(
"<br />",
"<strong>$1</strong>",
"<a href\"$1\" target=\"_blank\" rel=\"no follow\"></a>"
);
$body = htmlspecialchars($body);
$body = preg_replace($find, $replace, $body);
return $body;
答案 0 :(得分:1)
括号是一个特殊字符,通常在表达式中标记子模式,因此您需要将它们转义(就像使用方括号一样,顺便说一下):
"/\[(.+?)\]\((.+?)\)/is"
答案 1 :(得分:0)
它应该类似于:
\[([^\]]+)]\([^)]+\)
我们正在使用[^x]
,这意味着匹配任何非x
的内容
我们已使用此功能在[
之后的第一组中捕获所有不是]
的内容。
使用[^)]+
的第二组也是如此。任何不是)
的东西。