用于检测和替换锚标记的文本链接的php正则表达式

时间:2012-05-08 13:11:49

标签: php regex for-loop hyperlink

我从网站论坛上获取此正则表达式,以查找文本中的链接并将其替换为html链接,以便它们可以点击。

当有人输入其中一个如下所示的新YouTube链接时出现了问题:

http://youtu.be/djKd189-ag2

链接由破折号组成,然后-ag2自行保留。

我不太了解php正则表达式,甚至不敢改变它来添加解析破折号所以我希望我能得到一些帮助:

$newText = preg_replace('@((http|https)://([\w-.]+)+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?)@', 
             '<a href="$1" class="link1" target="_blank">$1</a>',$text);

我猜它在\ S + part

附近

1 个答案:

答案 0 :(得分:2)

$newText = preg_replace('@((http|https)://([\w-.]+)+(:\d+)?(/([\w/_-.]*(\?\S+)?)?)?)@', 
             '<a href="$1" class="link1" target="_blank">$1</a>',$text);

你需要一个' - ',它写成'[\ w /_.]'