エンジニアリングとお金の話

都内で働くエンジニアの日記です。

【技術】pythonでのキャメルケースとスネークケースの変換について

【SPONSORED LINK】

最近、仕事でキャメルケース⇔スネークケースの変換をよくやっている。テキストエディタの置換機能を使って対応しているが、pythonで簡単に出来るんじゃないかと思って書いてみた。

キャメルケース⇒スネークケース

#-*- coding:utf-8 -*-
import re

tmp = "aaa_bbb_ccc"
print re.sub("_(.)",lambda x:x.group(1).upper(),tmp)

※処理結果
aaaBbbCcc


スネークケース⇒キャメルケース

#-*- coding:utf-8 -*-
import re

tmp = "aaaBbbCcc"
print re.sub("([A-Z])",lambda x:"_" + x.group(1).lower(),tmp)

※処理結果
aaa_bbb_ccc

調査して分かったのだが、re.sub関数の変換対象(第2引数)に関数を指定する事が出来る。なお、引数としてキャプチャー結果が渡される為、正規表現でキャプチャーした結果に対して各種操作をする事も可能。正規表現で値取得⇒文字列操作がワンライナーで出来るので色々活用していきたい。