最近、仕事でキャメルケース⇔スネークケースの変換をよくやっている。テキストエディタの置換機能を使って対応しているが、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引数)に関数を指定する事が出来る。なお、引数としてキャプチャー結果が渡される為、正規表現でキャプチャーした結果に対して各種操作をする事も可能。正規表現で値取得⇒文字列操作がワンライナーで出来るので色々活用していきたい。