Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

正規表現の便利さについて

今日は、正規表現について語りたいです。

正規表現って聞くと正しいコードの書き方のようですが、検索方法の一種なので全く違います。

とても便利なもので、(個人差はありますが)作業効率がとてつもなく上がります。

まず正規表現とはなにか。

正規表現とは、検索のやり方のことです(正式な定義はわかりません)。

例えば、

<li>りんご</li>

<li>ばなな</li>

<li>なし</li>

とあったとき、これらを

<span class="list">りんご</span>

<span class="list">ばなな</span>

<span class="list">なし</span>

としたいとき、普通に置換するなら

1.<li>を<span class="list">にする

2.</li>を</span>にする

となるとおもいます。

しかし、正規表現ならこの2つを一発でできるのです。

やりかた(Dreamweaver版だけどだいたいこうだと思います。)

検索に、<li>(.+)</li>といれる。

置換に<span class="list">$1</span>といれる。

説明

()のなかの.は、任意の一文字(あとか、えとか神とかA,zとか改行以外のなにか)を示します。

.のほかに、\s(スペース、タブなどホワイトスペース),\d(数字),\w(下線を含む英数字)があります。

ちなみに改行は\r\n(windowsMacは検証していませんが、\nかな…)

.の直後の+は、直前の文字の1文字以上の繰り返しを示します。

(+のほかに*もあります。こちらは0文字以上)

つまり、<li>のなかにりんごが来ても、ばなながきても、なしが来ても<li>(.+)</li>に当てはまります。

次に置換の方の$1は、()でくくられた検索の際の文字列を示します。

(ちなみにかっこがいくつかあったら、前からn番目を$nと表します。)

だから、、これを行うと<li>(.+)</li>でまず

<li>りんご</li>がヒットして、(.+)はりんごになり、

置換で<span class="list">りんご</span>となります。

(ばなな、なしも同様)