import re
def abbreviationsDict():
return {'ref.': 'reference', 'ref:': 'reference', 'approx.': 'approximately', 'no.': '', 'nos.': ''}
pattern = re.compile(r'\b({})(?!\w)'.format('|'.join(re.escape(key) for key in abbreviationsDict().keys())), flags=re.I)
s = "Variation of Condition on planning application Ref: CB/15/03633/FULL dated 30/11/2015: Condition 9"
s = pattern.sub(lambda x: abbreviationsDict()[x.group(1).lower()], s)
print(s)
aW1wb3J0IHJlCmRlZiBhYmJyZXZpYXRpb25zRGljdCgpOgogICAgcmV0dXJuIHsncmVmLic6ICdyZWZlcmVuY2UnLCAncmVmOic6ICdyZWZlcmVuY2UnLCAnYXBwcm94Lic6ICdhcHByb3hpbWF0ZWx5JywgJ25vLic6ICcnLCAnbm9zLic6ICcnfQpwYXR0ZXJuID0gcmUuY29tcGlsZShyJ1xiKHt9KSg/IVx3KScuZm9ybWF0KCd8Jy5qb2luKHJlLmVzY2FwZShrZXkpIGZvciBrZXkgaW4gYWJicmV2aWF0aW9uc0RpY3QoKS5rZXlzKCkpKSwgZmxhZ3M9cmUuSSkKcyA9ICJWYXJpYXRpb24gb2YgQ29uZGl0aW9uIG9uIHBsYW5uaW5nIGFwcGxpY2F0aW9uIFJlZjogQ0IvMTUvMDM2MzMvRlVMTCBkYXRlZCAzMC8xMS8yMDE1OiBDb25kaXRpb24gOSIKcyA9IHBhdHRlcm4uc3ViKGxhbWJkYSB4OiBhYmJyZXZpYXRpb25zRGljdCgpW3guZ3JvdXAoMSkubG93ZXIoKV0sIHMpCnByaW50KHMp