特定の文字列を記号等を交えて記述することを正規表現といいます。
たとえば郵便番号を「〒○○○-××××」と表現するのも正規表現のうちのひとつです。
難しそうな正規表現も、2つのルールを知っているだけでさまざまなことができるようになります。
そもそも正規表現って何に使えるの?
曖昧な文字列を検索・置換ができるようになると以下の作業が簡単かつ正確にできるようになります。
- 文字列の順番を入れ替える
- 値段のフォーマットを「XXX円」から「¥XXX」に統一する
- 特定のスタイルのついたタグを削除する
使用環境
Adobe DreamweaverやBracketsが標準でサポートしています。
その他、一部のテキストエディタも対応しています。
使い方
覚えるべきルールは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
Baycross Marketing
Webサイト制作・保守の新着記事
サービス一覧
楽天市場のノウハウとテクニック満載
キャプテンEC

