using re adds white-space before and after the desired characters: import re pat = re.compile(r"([.()!])") print (pat.sub(" \\1 ", string)) # hello . . . ( world ) !