from 30

30歳からwebエンジニアになったけど、思ったよりも苦しいので、その苦闘の記録をば

【小ネタ】エディタで正規表現をつかって一括でcamelCaseをsnake_caseに変換する

経緯

顧客のRDBをDynamoDBに入るようにモデリングしなおして、データマイグレーションを行っている。

当社のDBのattributeはスネークケース(単語と単語をアンダースコアで結ぶ。例:snake_case)を使用しているが、顧客のDBやソースコードはキャメルケース(先頭単語は小文字で単語と単語の切れ目は大文字にして区別。例: camelCase)を使用している。

ドキュメント作成段階においては、頻繁に書き換えが起きているのだがエディタで一括変換が簡単にできるのがわかったので記しておく。

方法

f:id:kohski:20201031081521p:plain f:id:kohski:20201031081532p:plain

上記はvscodeの例です。

  1. 大文字・小文字の区別をつけるオプション(Aa)をオンにする
  2. 正規表現(.*)をオンにする
  3. 上部分で大文字をキャッチしたいので[A-Z]
  4. その大文字部分をキャプチャしたいので()で囲む
  5. 下部分で\Lをつけてキャプチャした内容($1)で小文字に変換。直前に_をつける。

ということで一括変換ができました。

感想

変数の命名規則の付け方はプロジェクトごとに決まることが多いと思います。

キャメルケースの場合だと全部大文字にしたい単語(ID, FAX ... etc)があると切れ目がわからなくなるのでスネークケースの方が好みなのですが、

一括変換ができるのでもうほんとどっちでもいいなおいう気持ちになりました。