今回の内容はちょっとした正規表現のノウハウですが、こちらコーダーさん、デザイナーさんかなり必見です!
検索・置換のために正規表現を覚えておくととても便利なのですが、使う頻度が少ないせいか、いざ使おうとなるとき覚えていなかったりしますよね(そもそもあまり覚える気ないかも…w)。
そもそも検索の仕方を上手く指定すれば正規表現を使わずに容易に置換できてしまうことも多くあるかと思います。
私もその考えだったため、正規表現を覚えたり、多用することはなかったのですが、どうしても1つだけやりたいことがあり、やり方を探していました。
それが、『複数行にわたる指定のエリア内を一気に置換する方法』です。
複数行になってしまうと、インデントの違いなどだけでも検索にかからなくなってしまうので、正規表現を使わないと対応できませんでした。
その方法が以下になります。
検索・置換のために正規表現を覚えておくととても便利なのですが、使う頻度が少ないせいか、いざ使おうとなるとき覚えていなかったりしますよね(そもそもあまり覚える気ないかも…w)。
そもそも検索の仕方を上手く指定すれば正規表現を使わずに容易に置換できてしまうことも多くあるかと思います。
私もその考えだったため、正規表現を覚えたり、多用することはなかったのですが、どうしても1つだけやりたいことがあり、やり方を探していました。
それが、『複数行にわたる指定のエリア内を一気に置換する方法』です。
複数行になってしまうと、インデントの違いなどだけでも検索にかからなくなってしまうので、正規表現を使わないと対応できませんでした。
その方法が以下になります。
魔法のコード
下記の例のようなコードを、使用エディタで正規表現を使用する設定にして実行してください。
<!-- header start -->([\s\S]*?)<!-- /header end -->
※このようにした場合は、中身に差異があっても<!– header start –> から <!– /header end –> 内全て検知します。()内が今回のキモです。
この場合、ヘッダーエリア内のソースを全部検索・置換出来るイメージです。
普通そのような共通部分はインクルードされていると思いますが、もしされていなかった、仕様・ルール的にできないなどの場合、めちゃくちゃ役立ちます。
また、“指定のエリア内”なのでどんな部分にも応用が効くかと思います。
これだけは覚えるなり、すぐ出てくるところにメモしておきたいですね。
ただし、あまりにも強力すぎるため、中身がどんなに違っても検索にひっかかってしまうため、例えば特定のページだけ違う内容のヘッダーとなっているような場合でも、かまわず置換されてしまいます。
使う前にサイト構造を把握しておかないと惨事を招きかねないのでご注意ください。
これでかなりの効率化がはかれると思います。