正規表現を使いこなす

* の使い方

「*」は、直前の文字の0回以上の繰り返しマッチングを意味します。
すなわち直前文字の0個以上の並びの文字列にマッチします。
注意事項として、0個でもマッチするということは、空文字にもマッチするということですので、他のパターンとの組み合わせで使用するのが一般的です。

空文字マッチングの例
「bbbbbbb」という文字列を、「a*」パターンで検索すると・・・
// 検索対象文字列
var str = "bbbbbbb";
// 検索実行および結果出力
document.write("検索結果: ", str.search(/a*/));
document.write("<br>抽出結果: ", str.match(/a*/));
document.write("<br>置換結果: ", str.replace(/a*/, "xxx"));
実行結果:


となり、期待した結果にはなりません。これは、文字列先頭の空文字にマッチしたためです。
このパターンを使う場合は、必ず他の文字と組み合わせて使用しましょう。

「bbbbbbb」という文字列を、「b*」パターンで検索してみましょう。
// 検索対象文字列
var str = "bbbbbbb";
// 検索実行および結果出力
document.write("検索結果: ", str.search(/b*/));
document.write("<br>抽出結果: ", str.match(/b*/));
document.write("<br>置換結果: ", str.replace(/b*/, "xxx"));
実行結果:


以上のように、正常にパターンマッチングが実行できました。

実際には次のように使います。
// 検索対象文字列
var str = "xyzitem0123abcdef";
// 検索実行および結果出力
document.write("検索結果: ", str.search(/item[0-9]*/));
document.write("<br>抽出結果: ", str.match(/item[0-9]*/));
document.write("<br>置換結果: ", str.replace(/item[0-9]*/, ""));
実行結果:


文字列からitem0123を探し出し、削除してみました。

戻る