python split
import re
def split_class_name(class_name):
sub = re.sub('([A-Z][^A-Z]*)', r' \1', class_name)
splitted = re.split(r'[\s\-_]', sub)
splitted = list(map(lambda x: x.lower().strip(), splitted))
splitted = list(filter(lambda x: x != '', splitted))
return ' '.join(splitted)
name = 'amaCamelCase__Test123-dash'
result = split_class_name(name)
['ama', 'camel', 'case', 'test123', 'dash']