Skip to main content
 首页 » 编程设计

将 Camel 案例转换为蛇案例的python函数

2025年05月04日12qq78292959

<分区>

我设法使用正则表达式拼凑了一个 python 函数,将 Camel 案例转换为蛇案例,它适用于我所有的测试用例,但我仍然有几个问题。

1) 这三个语句中的每一个实际上在做什么?

import re 
 
test_cases = list() 
test_cases.append('camelCase') 
test_cases.append('camelCaseCase') 
test_cases.append('camel2Case') 
test_cases.append('camel12Case') 
test_cases.append('camel12Case') 
test_cases.append('camelCaseURL') 
test_cases.append('camel2CaseURL') 
test_cases.append('camel12CaseURL') 
test_cases.append('camel12Case2URL') 
test_cases.append('camel12Case12URL') 
test_cases.append('CamelCase') 
test_cases.append('CamelCaseCase') 
test_cases.append('URLCamelCase') 
 
 
def camel_to_snake(string): 
    string = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', string) 
    string = re.sub('(.)([0-9]+)', r'\1_\2', string) 
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', string).lower() 
 
 
for string in test_cases: 
    print(string + ' -> ' + camel_to_snake(string)) 

结果是:

camelCase -> camel_case 
camelCaseCase -> camel_case_case 
camel2Case -> camel_2_case 
camel12Case -> camel_12_case 
camel12Case -> camel_12_case 
camelCaseURL -> camel_case_url 
camel2CaseURL -> camel_2_case_url 
camel12CaseURL -> camel_12_case_url 
camel12Case2URL -> camel_12_case_2_url 
camel12Case12URL -> camel_12_case_12_url 
CamelCase -> camel_case 
CamelCaseCase -> camel_case_case 
URLCamelCase -> url_camel_case