В основном вам нужно поместить @
в группу захвата, которую вы возвращаете.Тем не менее, шаблон очень загадочный и может быть значительно упрощен.
(?<![\w.-])@[A-Za-z][\w-]+
См. Демонстрационный пример regex
Подробности
(?<![\w.-])
- отрицательный вид сзади, который не соответствует совпадению, если непосредственно слева от текущего местоположения есть слово char или .
или -
@
-@
char [A-Za-z]
- буква ASCII [\w-]+
- 1 или более слов или дефисов.
В Python 3 скомпилируйтешаблон с флагом re.ASCII
, чтобы \w
соответствовал только буквам и цифрам ASCII.