概要
正規表現を使って、文字列を任意の条件でマッチさせて、検索や置換等を行う方法を試してみます。
パターンマッチによる検索
javascriptで文字列操作をする場合、非常に多岐に渡る方法があり、ここで一部を試して見ます。
下記のサンプルコードを書きます。
//文字列検索(対象文字列内のeの出現位置を返す) let pattern_str = "abcdef"; console.log(pattern_str.search(/e/i)); //出現しない場合は-1を返す let pattern_str2 = "abcd"; console.log(pattern_str2.search(/e/i));
出力結果は、それぞれ
4 -1
になります。
前者は「対象文字列内のeの出現位置を返す」ので、文字列eは対象文字列中の4つめを示します。
後者はマッチするものが無かった場合に-1になります。
パターンマッチによる置換
次に置換を試してみます。
//置換(文字列eが一致する場合、その文字を任意の文字列に置換する) let pattern_str3 = "abcdef"; console.log(pattern_str3.replace(/e/i, "y"));
出力結果は
abcdyf
になります。
これは単純に文字列中の「e」がヒットし、それを「y」に置き換えています。
パターンマッチで検索したものを取得し、配列化する
次に文字列中にある条件のものを全て配列として返す場合です。
//正規表現で一致した結果を配列で返す let pattern_str4 = "abc5def7"; console.log(pattern_str4.match(/\d/g));
出力結果は
Array [ "5", "7" ]
になります。(firefoxのログで確認した場合)
「\d」は数値を表し、パターンマッチ時にgオプションをつけることで、対象文字列中の全てのヒットした文字列に一致した文字列を返します。
簡単なサンプルのみになりますが、その他の文字列操作の正規表現は代表的なもので次のものがあります。
charAt slice split substr substring toLowerCase toUpperCase
これらはStringオブジェクトのメソッドなので、正規表現での文字列操作と合わせて使うと有効です。