from collections import OrderedDict
import re
test = "fitess no kome*"
slang_dict = {"Aha aha":"no", "fitess":"fitness", "damm":"damn", "kome*":"come", "ow wow":"rrf"}
slang_dict = OrderedDict(sorted(slang_dict.iteritems(), key=lambda x: len(x[0]), reverse=True))
slangs_re = re.compile(r"(?<!\w){}(?!\w)".format('|'.join([re.escape(x) for x in slang_dict])))
def correct_slang(s, slang_dict=slang_dict):
def replace(match):
return slang_dict[match.group(0)]
return slangs_re.sub(replace, s)
test = correct_slang(test)
print(test)
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKaW1wb3J0IHJlCgp0ZXN0ID0gImZpdGVzcyBubyBrb21lKiIKCnNsYW5nX2RpY3QgPSB7IkFoYSBhaGEiOiJubyIsICJmaXRlc3MiOiJmaXRuZXNzIiwgImRhbW0iOiJkYW1uIiwgImtvbWUqIjoiY29tZSIsICJvdyB3b3ciOiJycmYifQpzbGFuZ19kaWN0ID0gT3JkZXJlZERpY3Qoc29ydGVkKHNsYW5nX2RpY3QuaXRlcml0ZW1zKCksIGtleT1sYW1iZGEgeDogbGVuKHhbMF0pLCByZXZlcnNlPVRydWUpKQoKc2xhbmdzX3JlID0gcmUuY29tcGlsZShyIig/PCFcdyl7fSg/IVx3KSIuZm9ybWF0KCd8Jy5qb2luKFtyZS5lc2NhcGUoeCkgZm9yIHggaW4gc2xhbmdfZGljdF0pKSkKZGVmIGNvcnJlY3Rfc2xhbmcocywgc2xhbmdfZGljdD1zbGFuZ19kaWN0KToKCWRlZiByZXBsYWNlKG1hdGNoKToKCQlyZXR1cm4gc2xhbmdfZGljdFttYXRjaC5ncm91cCgwKV0KCglyZXR1cm4gc2xhbmdzX3JlLnN1YihyZXBsYWNlLCBzKQoKdGVzdCA9IGNvcnJlY3Rfc2xhbmcodGVzdCkKcHJpbnQodGVzdCk=