twitter regex用于将文本显示为url,但如果它是文本则不显示

时间:2010-06-20 11:49:47

标签: php regex url

有人可以帮我调整这个正则表达式吗?

我对twitter有这个正则表达式,如果我拼写像这个R @ chard这样的单词,它想把它变成一个URL。在Twitter本身上它显示正确。

删除最后一行可能很明显,虽然我对形成正则表达式并不太了解。也许还有一个更聪明的用于Twitter?

另外,我有一个ajax twitter更新程序,它显示了questionmark占位符。 它们是什么,正则表达式可以摆脱那些?

这是我的代码

function format_tweet($str) 
    {
$formatted_text = preg_replace('/(\b(www\.|http\:\/\/)\S+\b)/', "<a target='_blank' href='$1'>$1</a>", $str);
$formatted_text = preg_replace('/\#(\w+)/', "<a target='_blank' href='http://search.twitter.com/search?q=$1'>#$1</a>", $formatted_text);
$formatted_text = preg_replace('/\@(\w+)/', "<a target='_blank' href='http://twitter.com/$1'>@$1</a>", $formatted_text);
return $formatted_text;
}

谢谢,理查德

1 个答案:

答案 0 :(得分:1)

尝试:

$formatted_text = preg_replace('/(?:^|\s)[#](\w+)/', "<a target='_blank' href='http://search.twitter.com/search?q=$1'>#$1</a>", $formatted_text);
$formatted_text = preg_replace('/(?:^|\s)[@](\w+)/', "<a target='_blank' href='http://twitter.com/$1'>@$1</a>", $formatted_text);

关于问号,我不知道。如果你发布一些代码,也许我会帮忙。