preg_replace总是提供与$ 1相同页面的链接

时间:2012-11-29 14:40:08

标签: php regex preg-replace

我在PHP中使用preg_replace。当我使用此代码行时:

echo nl2br(preg_replace("(http://.+) ", "<a href='$1'>[link]</a>", $row['description']));

它回应"<a href=''>[link]</a>". 这是“描述”:http://www.youtube.com/watch?v=JDrnz8ZZtUE
这有什么问题? (我还在说明中包含了空格)

2 个答案:

答案 0 :(得分:4)

那是因为你没有指定分隔符。 PHP将假定()为分隔符,从而消除了捕获组。

"~(http://.+)~"

答案 1 :(得分:0)

您没有任何分隔符。这是语法:

$pattern = '/(\w+) (\d+), (\d+)/i';

尝试这样做:

echo nl2br(preg_replace("/(http://.+)/", "<a href='$1'>[link]</a>", $row['description']));