【一括削除】使わなくなったfunctionを削除するための正規表現

2019年12月2日Linux, PHP正規表現

急いでいる人向けの正規表現

function名がhogeの場合は以下のように置換させてあげれば、綺麗に削除できます。

パターンは以下。

/hoge\((.*?)\)/

置換は以下。

/$1/

どんなシチュエーションでfunctionを一括削除したいのか

以下のような関数を利用していたが、必要がなくなったときに削除することを想定しています。定義の削除は簡単ですが、それを使用している箇所が無数にあった場合は全てを手動で削除するのは骨が折れます。

<?php
function sanduke($name)
{
  return $name . "さん";
}

この関数を使用している箇所を、

<?php
echo sanduke("enutake") . PHP_EOL; //enutakeさん
echo sanduke("hamutarou") . PHP_EOL; //hamutarouさん

以下のように後ろの括弧も合わせて綺麗に削除したい。

<?php
echo "enutake" . PHP_EOL; //enutake
echo "hamutarou" . PHP_EOL; //hamutarou

正規表現による置換を用いた一括削除の仕方

まずはfunction名を記述します。スラッシュは正規表現のお決まりの区切り文字です。

/sanduke/

括弧の部分もパターンに入れます。括弧はバックスラッシュでエスケープ化させます。

/sanduke\(\)/

functionで利用する引数があるかもしれませんので、(.*)で表現します。

/sanduke\((.*)\)/

最後に、このままだと最長マッチで計算されてしまうので、最短マッチにするために?を加えます。

/sanduke\((.*?)\)/

これでマッチングのパターンは作成できました。

あとは置換をどうすればいいかですが、正規表現は()で囲んだパターンが$1,$2,$3,…,$nに格納されるので、以下のように記述してあげれば完成です!

/$1/

vscodeやサクラエディタを用いて、プロジェクト単位で置換すれば使っていない関数をサクサク削除できるので、ぜひ利用してみてください!

サイト運営者 えぬたけ


都内で働くゆるふわフルスタックwebエンジニア。