蛇形字符串

将字符串转换为蛇形命名法。

  • 使用re.sub()匹配字符串中的所有单词,使用str.lower()将它们转换为小写。
  • 使用re.sub()将任何-字符替换为空格。
  • 最后,使用str.join()将所有单词使用-作为分隔符组合起来。
from re import sub

def snake(s):
  return '_'.join(
    sub('([A-Z][a-z]+)', r' \1',
    sub('([A-Z]+)', r' \1',
    s.replace('-', ' '))).split()).lower()

snake('camelCase') # 'camel_case'
snake('some text') # 'some_text'
snake('some-mixed_string With spaces_underscores-and-hyphens')
# 'some_mixed_string_with_spaces_underscores_and_hyphens'
snake('AllThe-small Things') # 'all_the_small_things'