Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Python | 文字列をスネークケースに変換

概要

文字列をスネークケースに変換

サンプルコード

StringUtils.py
# -*- coding: utf-8 -*-
import re
class StringUtils:
  @classmethod
  def to_snake(cls, value, upper): 
    if (value == None):
      return None
    if (value == ""):
      return ""

    ret = re.sub(r'([\s|A-Z])', "_\\1",value)
    ret = re.sub(r'([\s])', "",ret)
    ret = re.sub(r'^_', "",ret)
    if (upper):
      ret = ret.upper()
    else:
      ret = ret.lower()
    return ret
exec_snake.py
# -*- coding: utf-8 -*-
from string_utils import *

def exec_snake(upper):
  print StringUtils.to_snake("hogeHigeHage", upper)
  print StringUtils.to_snake("HOGE", upper)
  print StringUtils.to_snake("hoge_hoge", upper)
  print StringUtils.to_snake("hoge hoge", upper)
  print StringUtils.to_snake("", upper)
  print StringUtils.to_snake(None, upper)

exec_snake(False)
print "----------------------------------------"
exec_snake(True)
出力
hoge_hige_hage
h_o_g_e
hoge_hoge
hoge_hoge

None
----------------------------------------
HOGE_HIGE_HAGE
H_O_G_E
HOGE_HOGE
HOGE_HOGE

None