我正在开发一个PHP应用程序,它需要一个正则表达式来替换像twitter这样的@ mentions。正则表达式也应满足以下需求。
@
之前和之后没有任何内容,那么就不应该替换它。@
。例如。 sam@example.com
不应该被替换。@sam
或@example
等字符串,例如<a href="http://twitter.com/sam">@sam</a>
和<a href="http://twitter.com/example">@example</a>
请帮忙。提前谢谢。
答案 0 :(得分:2)
哇。我自己找到了答案。
$tweet = preg_replace('/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '$1<a href="http://twitter.com/$2">@$2</a>', $tweet);
感谢您的帮助。
答案 1 :(得分:1)
怎么样 -
(?<!\w)@[\w]+
答案 2 :(得分:1)
由于Twitter最多可包含15个字符,因此您可以这样写它以避免一些错误:
$tweet = preg_replace("/(^\w)@(\w{1,15})/i", "\\1<a ref=\"http://twitter.com/\\2\">@\\2</a>", $tweet);