Edited at

正規表現でスネークケース↔キャメルケース/パスカルケースの変換

More than 3 years have passed since last update.


前提

ここでは、



  • ローワーキャメルケースキャメルケース


  • アッパーキャメルケースパスカルケース

と呼ぶ。

これは
こんな感じ
つまり

スネークケース
hoge_hoge_hoge
単語をアンダースコア区切りにしたもの

キャメルケース
hogeHogeHoge
単語の先頭を大文字にしたもの(最初の単語は先頭が小文字)

パスカルケース
HogeHogeHoge
単語の先頭を大文字にしたもの(最初の単語も先頭が大文字)


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

hoge_hoge_hoge → hogeHogeHoge

echo 'hoge_hoge_hoge' | sed -r 's/_(.)/\U\1\E/g'


スネークケース → パスカルケース

hoge_hoge_hoge → HogeHogeHoge

echo "hoge_hoge_hoge" | sed -r 's/(^|_)(.)/\U\2\E/g'


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

hogeHogeHoge → hoge_hoge_hoge

echo "hogeHogeHoge" | sed -r 's/([A-Z])/_\L\1\E/g'


パスカルケース → スネークケース

HogeHogeHoge → hoge_hoge_hoge

echo "HogeHogeHoge" | sed -r -e 's/^([A-Z])/\L\1\E/' -e 's/([A-Z])/_\L\1\E/g'