0

我有一个基本的正则表达式函数,可以将 hastags 转换为链接,但我遇到的问题是它只将实际单词转换为链接,而将 # 单独保留。我希望 # 成为链接的一部分...在 a 标签内。

它产生什么:

#<a href="">hastag</a>

我想要的是:

<a href="">#hastag</a>

我的PHP代码:

public function link_hashtags($text)
{
    $text = preg_replace('/(^|\s)#(\w*[a-zA-Z_]+\w*)/', '\1#<a href="http://search.twitter.com/search?q=%23\2">\2</a>', $text);
    return $text;

}

它确实正确地传递了这个词,因为我不希望将主题标签传递给 url,有什么建议吗?

谢谢!

4

2 回答 2

0

像你一样将#符号放在<a>标签内,但也要取出标签前面的那个......

于 2012-09-18T20:50:03.987 回答
0

如果要匹配带有哈希标记的单词,可以使用以下正则表达式:

/#([^\s]+)/

<a href="http://search.twitter.com/search?q=%23\1">#\1</a>

在锚点内使用 \1 的反向引用。

于 2012-09-18T20:51:01.957 回答