import rename = 'CamelCaseName'name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower()print(name) # camel_case_name
如果您执行多次,而上述 *** 作很慢,请事先编译正则表达式:
pattern = re.compile(r'(?<!^)(?=[A-Z])')name = pattern.sub('_', name).lower()
要专门处理更高级的案件(这不再是可逆的):
Snake skin to camel skindef camel_to_snake(name): name = re.sub('(.)([A-Z][a-z]+)', r'1_2', name) return re.sub('([a-z0-9])([A-Z])', r'1_2', name).lower()print(camel_to_snake('camel2_camel2_case')) # camel2_camel2_caseprint(camel_to_snake('getHTTPResponseCode')) # get_http_response_preprint(camel_to_snake('HTTPResponseCodeXYZ')) # http_response_pre_xyz
name = 'snake_case_name'name = ''.join(word.title() for word in name.split('_'))print(name) # SnakeCaseName
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)