Регулярное выражение для поиска и замены @ упоминает как твиттер

Я разрабатываю приложение PHP, для которого требуется регулярное выражение, чтобы заменить упоминания @, такие как твиттер. Также регулярное выражение должно удовлетворять следующим требованиям.

  1. если есть только @ и ничего до и после этого, то его не следует заменять.
  2. @ в письмах не следует заменять. Напр. sam@example.com не следует заменять.
  3. Только строки, такие как @sam или @example должны быть заменены как <a href="http://twitter.com/sam">@sam</a> и <a href="http://twitter.com/example">@example</a>

Пожалуйста помоги. Заранее спасибо.

Вау. Я нашел ответ, ребята.

 $tweet = preg_replace('/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '$1<a href="http://twitter.com/$2">@$2</a>', $tweet); 

Спасибо за помощь ребята.

Как насчет чего-то вроде –

 (?<!\w)@[\w]+ 

Поскольку твиттер может содержать до 15 символов, вы можете написать его так, чтобы избежать ошибок:

 $tweet = preg_replace("/(^\w)@(\w{1,15})/i", "\\1<a ref=\"http://twitter.com/\\2\">@\\2</a>", $tweet);