trans = {'\uff11': '1', '\uff12': '2', '\uff13': '3', '\uff14': '4',
    '\uff15': '5', '\uff16': '6', '\uff17': '7', '\uff18': '8',
    '\uff19': '9', '\uff10': '0'}
lookup = re.compile('|'.join(list(trans.keys())), re.UNICODE)
string = 'a\uff11\uff12\uff13'
lookup.sub(lambda x: trans[x.group()], string)
Python: How can I replace full-width characters with half-width characters?