Регулярное выражение для соответствия пробелу или концу строки

Я пытаюсь найти каждый экземпляр @username в тексте комментария и заменить его ссылкой. Вот мой PHP:

$comment = preg_replace('/@(.+?)\s/', '<a href="/users/${1}/">@${1}</a> ', $comment); 

Единственная проблема заключается в том, что регулярное выражение зависит от наличия пробела после ссылки @username. Может ли кто-нибудь помочь мне настроить его так, чтобы он также соответствовал, если он находится в конце строки?

try /@(\w+)/ вместо /@(.+?)\s/ .

Чтобы определить пробелы или конец строки, вы должны использовать: /@(.+?)(?=\s|$)/ , но если ваши имена пользователей не содержат алфавитно-цифровые символы, проще использовать символ \w для слова или \b для прерывания слова, то есть: /@(.+?)\b/ или /@(\w)+/ .