Como fazer o Regex escolher palavras separadamente

Então eu tenho essa string:

[email protected] !~shaz@ PRIVMSG #Rizon :ohai. New here. registered 10 mins ago, have not got an email. Addy is correct. My email is working fine.

Eu quero o regex para encontrar! ~ Shaz @ então eu uso este r "!. + @", Mas então ele encontra isso

[email protected] !~shaz@ 

como eu me lembro.Eu quero encontrá-los como separados e substituí-los com uma certa letra..Qualquer ajuda sobre este e sim, se você pode me dar qualquer bom regex tuts para Python eu ficaria grato: D

questionAnswers(2)

yourAnswerToTheQuestion