import re
counter = {}
def repl(m):
if m.group() in counter:
counter[m.group()] += 1
else:
counter[m.group()] = 1
return 'd'
text = "a;b o a;c a l l e d;a;c a b"
rx = re.compile(r'\b(a|b|c)\b')
result = rx.sub(repl, text)
print(counter, result, sep="\n")
aW1wb3J0IHJlCgpjb3VudGVyID0ge30KCmRlZiByZXBsKG0pOgogICAgaWYgbS5ncm91cCgpIGluIGNvdW50ZXI6CiAgICAgICAgY291bnRlclttLmdyb3VwKCldICs9IDEKICAgIGVsc2U6CiAgICAgICAgY291bnRlclttLmdyb3VwKCldID0gMQogICAgcmV0dXJuICdkJwoJCnRleHQgPSAiYTtiIG8gYTtjIGEgbCBsIGUgZDthO2MgYSBiIgpyeCA9IHJlLmNvbXBpbGUocidcYihhfGJ8YylcYicpCnJlc3VsdCA9IHJ4LnN1YihyZXBsLCB0ZXh0KQpwcmludChjb3VudGVyLCByZXN1bHQsIHNlcD0iXG4iKQ==