[title](http://)链接的正则表达式

时间:2013-02-17 21:59:04

标签: php regex hyperlink

我正在尝试使用带有[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; 

2 个答案:

答案 0 :(得分:1)

括号是一个特殊字符,通常在表达式中标记子模式,因此您需要将它们转义(就像使用方括号一样,顺便说一下):

"/\[(.+?)\]\((.+?)\)/is"

答案 1 :(得分:0)

它应该类似于:

\[([^\]]+)]\([^)]+\)

我们正在使用[^x],这意味着匹配任何非x的内容  我们已使用此功能在[之后的第一组中捕获所有不是]的内容。 使用[^)]+的第二组也是如此。任何不是)的东西。