解説
正規表現は文字列のパターンを表現する方法です。検索や置換で用いられて、複雑な条件で文字列に一致させることが可能です。正規表現では、メタ文字、メタキャラクターと呼ばれる記号を使い、文字を抽象化して出現パターンを記します。
この正規表現は、多くのプログラミング言語や、テキストエディタで利用できます。使用するプログラミング言語などの環境によって、微妙に仕様が違うので、使用前に確認が必要です。本記事では、JavaScriptの正規表現を中心に扱います(他のプログラミング言語の正規表現も、大きな差はありません)。
前回は、その正規表現の中から、繰り返し表現を紹介しました。
今回は、「g」と「i」の2つのフラグを紹介します。フラグは、正規表現の式に添えて、その挙動をコントロールするためのスイッチのようなものです。
「g」フラグは、「global」という意味のフラグです。検索や置換の対象を、最初の1回ではなく、すべてにします。文字列を全置換したい場合などに、威力を発揮するフラグです。
コード :"Boo! Hooo! Woooo!".replace(/o+/, "o"); 置換の結果:"Bo! Hooo! Woooo!"
コード :"Boo! Hooo! Woooo!".replace(/o+/g, "o"); 置換の結果:"Bo! Ho! Wo!"
「i」フラグは、「ignore case」という意味のフラグです。大文字と小文字を区別せずに検索するフラグです。
コード :"bUg Bug BUg buG".replace(/bug/, "XXX"); 置換の結果:"bUg Bug BUg buG"
コード :"bUg Bug BUg buG".replace(/bug/ig, "XXX"); 置換の結果:"XXX XXX XXX XXX"
サンプル
正規表現の「フラグ」を利用したコードを、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「フラグ」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
// 「g」フラグの例:カタカナ言葉をすべて■に
var str = "我が社では、メンバー全員がクリティカルな"
+ "ポイントを突いたロジックでアクションすることに"
+ "バリューを置いています";
str = str.replace(/[ァ-ヶー]+/g, "■");
document.writeln(str);
// 「i」フラグの例:大文字小文字関係なく削除
var str = "Fuck! fuck! fUck fuCK FUCK!!!";
str = str.replace(/fuck!*/ig, "ピーッ!");
document.writeln(str);
</script></pre>
</body>
</html>
我が社では、■全員が■な■を突いた■で■することに■を置いています ピーッ! ピーッ! ピーッ! ピーッ! ピーッ!
