我有一个基本的正则表达式函数,可以将hastags转换为链接,但我遇到的问题是它只将实际的单词转换为链接而单独留下#。我希望#成为链接的一部分......在标签内。
它产生了什么:
#<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,有什么建议吗?
谢谢!
答案 0 :(得分:0)
将#
符号放在<a>
标记内,但也取出标记之前的那个...
答案 1 :(得分:0)
如果要匹配前缀为哈希标记的单词,可以使用以下正则表达式:
/#([^\s]+)/
<a href="http://search.twitter.com/search?q=%23\1">#\1</a>
在锚点内使用\ 1的后引用。