将CamelCase中的缩略语转换为python中的snake_case

时间:2017-08-02 18:44:01

标签: python python-3.x

以下代码将camelcase转换为snake case:

 def convertToSnakeCase(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()

我如何进行转换,我有3个连续的大写字母,如ISM,但将它拆分为is_my:

ThisISMyTest --------------> This_is_my_test

1 个答案:

答案 0 :(得分:-1)

一种不同的方法,并且大部分都有效。我不知道你如何绕过IS ThisISMyTest,因为一个程序在没有进行自然语言处理的情况下真的无法说出什么是单词。

def convertToSnakeCase(name):
  split_name = list(name)
  for c in range(len(split_name)):
    if split_name[c].isupper() and c != 0 and split_name[c-1] != '_':
        split_name.insert(c,'_')
        c +=1

  return ''.join(split_name).lower()

print(convertToSnakeCase("ThisISMyTest"))

this_i_s_my_test