特定の文字列を記号等を交えて記述することを正規表現といいます。
たとえば郵便番号を「〒○○○-××××」と表現するのも正規表現のうちのひとつです。
難しそうな正規表現も、2つのルールを知っているだけでさまざまなことができるようになります。

そもそも正規表現って何に使えるの?

曖昧な文字列を検索・置換ができるようになると以下の作業が簡単かつ正確にできるようになります。

  • 文字列の順番を入れ替える
  • 値段のフォーマットを「XXX円」から「¥XXX」に統一する
  • 特定のスタイルのついたタグを削除する

使用環境

Adobe DreamweaverやBracketsが標準でサポートしています。
その他、一部のテキストエディタも対応しています。

使い方

覚えるべきルールは2つだけ。

  1. 検索時、置換したい文字列は()で囲む
  2. 置換時、置換後の文字列は$1$9と書く

検索でカッコ()に囲まれた文字列の値を先頭から$1,$2,$3…と代入されます。

実用例

文字列の順番を入れ替える

before after
ABC CAB
// 検索
(.)(.)(.)
// 置換
$3$1$2
  • .は任意の一文字を意味します。

値段のフォーマットを変更する

before after
ノート:90円
シャーペン:250円
万年筆:1,500円
ノート ¥90
シャーペン ¥250
万年筆 ¥1,500
// 検索
:(.*)円
// 置換
 ¥$1
  • .*は数・種類関係なく任意の文字列を意味します。
    • (.*)の前後に文字列指定がない場合、行の開始から終了まで1行すべてを参照します。

特定のスタイルのついたタグを削除する

before after
<strong style=”text-decoration: underline;”>ECサイト制作・運用、Web制作・Webマーケティング</strong>のことなら<span style=”color:red;font-weight:bold;”>おまかせください</span>。 ECサイト制作・運用、Web制作・Webマーケティングのことならおまかせください。
// 検索
<.*? style=.*?>(.*?)
// 置換
$1
  • 検索時、置換する必要のない文字列についてはカッコ()で囲む必要はありません。
  • ?は直前の文字列について「0回もしくは1回」を意味します。

上記のサンプルで?なし<.* style=.*>(.*)の場合、行の開始から終了までの条件に合致する最も長い文字列を参照してしまうため、<strong>から</span>までの文字列すべてを参照してしまいます
それを避けるために?を用いて「0回もしくは1回」の最短一致を参照する必要があります。

まとめ

上記にまとめたのは最小限の実用例とルールになります。
より複雑な処理をしたいときは「数字のみ」や「n回以上」などの一致条件で記すことも可能です。

正規表現の(.*?)$1については個人的に実務で一番お世話になっているため、コーディングをがっつりしないデザイナーさんたちにもぜひ使って頂けたらと思います。

Written by

売上が上がらない、人手が足りない…EC運営代行歴15年のプロが解決 繁忙期猫の手も借りたい!そんなあなたに代わって制作いたします。バナー・LP・商品画像・イラスト