0

我尝试了很多不支持所有案例的东西,我做了一个混合了所有答案的东西。

def to_snake(camel_input):
    camel_input = camel_input.replace('&', '_and_')
    camel_input = re.sub(r'(?<!^)(?=[A-Z])', '_', camel_input).lower()
    words = re.findall(r'[A-Z]?[a-z]+|[A-Z]{2,}(?=[A-Z][a-z]|\d|\W|$)|\d+', camel_input)
    return '_'.join(words)

结果'my p&l AndP&L aa_BB_dd (teSt) AndMy P&L andAlsoP&L andAlso p&l A B aA'

print(to_snake('my p&l AndP&L aa_BB_dd (teSt) AndMy P&L andAlsoP&L andAlso p&l A B aA'))
my_p_and_l_and_p_and_l_aa_b_b_dd_te_st_and_my_p_and_l_and_also_p_and_l_and_also_p_and_l_a_b_a_a
4

0 回答 0