import re s = "@romeo went to @juliet and said hi, I'm @romeo" print(re.sub(r"\B(?<!@)@(\w{1,31})", r'<a href="/u/\1">\g<0></a>', s))
Standard input is empty
<a href="/u/romeo">@romeo</a> went to <a href="/u/juliet">@juliet</a> and said hi, I'm <a href="/u/romeo">@romeo</a>