In [14]:
import re
pattern_not = re.compile(r'([^\dA-Za-z]+)')
In [15]:
under = lambda name: re.sub(pattern_not, '_', name)
In [16]:
under('A@a-1').lower()
Out[16]:
In [ ]: