O usuário começa com arroba e somente letras e numeros.
Obrigado desde já a todos.
Montei um codigo que deu certinho so tem um problema se no texto tiver mais de um usuario ele substitui o segundo como primeiro se alquem poder dar uma melhorada neste codigo fico grato desde já.
$texto = "@drhouse2 text text text text text text text @drhouse3."; preg_match('(@[a-z0-9]{3,15})', $texto, $matches); echo preg_replace('(@[a-z0-9]{3,15})', "<a href='http://site.com/perfil/".substr($matches[0], 1, 15)."/'>".$matches[0]."</a>", $texto);
Resultado:
<a href='http://site.com/perfil/drhouse2/'>@drhouse2</a> text text text text text text text <a href='http://site.com/perfil/drhouse2/'>@drhouse2</a>.
Onde o certo seria:
<a href='http://site.com/perfil/drhouse2/'>@drhouse2</a> text text text text text text text <a href='http://site.com/perfil/drhouse3/'>@drhouse3</a>.
Obrigado novamente.