以下のようなコードがあり、$building_idなどのスネークケースをキャメルに変換したいです。
public function hoge($building_id, $owner_member_id) { $query = Hoge::query(); $query = $query->where('building_id', $building_id); $query = $query->where('owner_member_id', $owner_member_id); return $query->first(); }
単純に、「(_|^)(.)」=>「\u$2」と置換したらなるのですが
where('owner_member_id',
のようにwhereで始まり、キャメルケースが続き、「',」で終了するようなところは除外したいです。
where('owner_member_id',
この行自体は「where.(_)(.).',」でマッチしたのですが
以下のように、「含まない」という条件を指定するうまくいきません。
(_)(.)(?!where.*(_)(.).*',)
解決策をご存知の方がいれば教えてください
逆に、「$で始まり英数字・アンダーバーだけを含むもの」という条件に絞って置き換え…という方法は使えないのでしょうか?
(ブラックリスト方式でやると、思わぬものがヒットする危険があります)
あ、確かにそれでもいいですね
やろうとしているのはエディタでの置換ですか?
その場合、置換元は「\$[0-9a-zA-Z]*(_)(.)」になると思いますが置換先はどうしたらいいでしょうか?
はい、PHPSTORMでの置換です。
(\$[0-9a-zA-Z]*)(_)(.)
から
$1\u$3
ですかね
「PHPSTORM」タグがあるようなので付けておくとよいかもしれません
でもそれなら
$hoge_floor_building_ids
みたいなのにマッチしないですね
タグつけておきました
回答1件
あなたの回答
tips
プレビュー