python case_优雅的Python函数将CamelCase转换为snake_case?

这是相当透彻:

def convert(name):

s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)

return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()

适用于所有这些(并且不会损害已经 – 非骆驼版本):

>>> convert('CamelCase')

'camel_case'

>>> convert('CamelCamelCase')

'camel_camel_case'

>>> convert('Camel2Camel2Case')

'camel2_camel2_case'

>>> convert('getHTTPResponseCode')

'get_http_response_code'

>>> convert('get2HTTPResponseCode')

'get2_http_response_code'

>>> convert('HTTPResponseCode')

'http_response_code'

>>> convert('HTTPResponseCodeXYZ')

'http_response_code_xyz'

或者如果你打算把它称为数百万次,你可以预编译正则表达式:

first_cap_re = re.compile('(.)([A-Z][a-z]+)')

all_cap_re = re.compile('([a-z0-9])([A-Z])')

def convert(name):

s1 = first_cap_re.sub(r'\1_\2', name)

return all_cap_re.sub(r'\1_\2', s1).lower()

不要忘记导入正则表达式模块

import re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值