有人可以帮我调整这个正则表达式吗?
我对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;
}
谢谢,理查德
答案 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);
关于问号,我不知道。如果你发布一些代码,也许我会帮忙。