我在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
这有什么问题? (我还在说明中包含了空格)
答案 0 :(得分:4)
那是因为你没有指定分隔符。 PHP将假定()
为分隔符,从而消除了捕获组。
"~(http://.+)~"
答案 1 :(得分:0)
您没有任何分隔符。这是语法:
$pattern = '/(\w+) (\d+), (\d+)/i';
尝试这样做:
echo nl2br(preg_replace("/(http://.+)/", "<a href='$1'>[link]</a>", $row['description']));