Camel case to snake case
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()要专门处理更高级的案件(这不再是可逆的):
def 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_xyzSnake skin to camel skin
name = 'snake_case_name'name = ''.join(word.title() for word in name.split('_'))print(name) # SnakeCaseName


