.net column

.NET開発者のためのブログメディア

JavaScriptのmatchメソッドの使い方を覚えよう!|正規表現の複数指定について知ろう

2020年09月28日

SE
matchメソッドとはどういった仕組みのメソッドでしょうか?

PM
matchメソッドとは文字列を扱うメソッドです。実際に詳しいコードを見ていきましょう。

JavaScriptのmatchメソッドの使い方とは?


今回はJavaScriptのmatchメソッドの使用方法について説明します。
matchを使用すれば、正規表現パターンで文字列の検索や抽出ができます。
また、部分一致や前方一致、後方一致などの正規表現の記述方法についても紹介します。
JavaScriptのmatchメソッドの使い方に興味のある方はぜひご覧ください。

基本的な使い方

JavaScriptにおけるmatchメソッドの基本的な使い方を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

大文字のアルファベットに一致する文字が配列に格納されていることが分かります。
このように、matchメソッドの戻り値は配列です。
gフラグを付与した場合、正規表現にマッチしたすべての結果を返します。

では、gフラグを付与しない場合にどうなるか確認してみましょう。

実行結果は以下のようになります。

gフラグを付与しない場合、最初に正規表現にマッチしたものが返されます。また、キャプチャグループも返されます。

次に、正規表現にマッチしない場合にどうなるか確認してみましょう。

実行結果は以下のようになります。

正規表現に一致しない場合、nullが返されます。

正規表現の複数指定

JavaScriptにおけるmatchメソッドは、正規表現を複数指定できます。
実際のソースコードを見てみましょう。

実行結果は以下のようになります。

正規表現をパイプ””|””で区切って記述することで、複数条件を指定することができます。
このように、JavaScriptにおけるmatchメソッドは正規表現を複数指定できます。

最後にmatchする結果の抽出

JavaScriptのmatchメソッドにgフラグを付与しない場合、最初に正規表現にマッチしたものが返されます。
では、最後にマッチしたものを返すにはどうすればよいでしょうか。

実行結果は以下のようになります。

matchメソッドは配列で返却されるので、配列要素数-1のインデックスにアクセスすれば、最後にマッチしたものを抽出できます。
正規表現にマッチしない場合は範囲外アクセスが発生しますのでケアが必要です。

大文字/小文字を区別しない

matchメソッドにiフラグを付与すれば、大文字/小文字を区別しない検索ができます。
実際のソースコードを見てみましょう。

実行結果は以下のようになります。

 

このように、matchメソッドにiフラグを付与すれば、大文字/小文字を区別しない検索ができます。

if文内のmatchメソッド

正規表現にマッチするか評価するには、if文内にmatchメソッドを記述します。
実際のソースコードを見てみましょう。

実行結果は以下のようになります。

対象文字列には””hoge””は含まれていませんので、else側の処理が実行されます。
このように、正規表現にマッチするか評価するには、if文内にmatchメソッドを記述します。

前方一致

matchメソッドの正規表現で前方一致を抽出する方法を紹介します。

実行結果は以下のようになります。

ハット(^)を指定することで指定文字で始まる正規表現となります。
こうすることで、先頭の単語を抽出できます。

後方一致

matchメソッドの正規表現で後方一致を抽出する方法を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

ドル記号($)を指定することで指定文字で終わる正規表現となります。
こうすることで、末尾の単語を抽出できます。

SE
特定の文字列を指定するときに必要なメソッドなんですね。

PM
JavaScriptでの正規表現を使用した場合に文字列を扱うためのメソッドです。実際にコードを書いて理解を深めていってください。

JavaScriptのmatchメソッドの使い方を正しく理解しよう

いかがでしたでしょうか。
JavaScriptのmatchメソッドの使用方法に説明しました。
matchを使用すれば、正規表現パターンで文字列の検索や抽出ができます。
部分一致や前方一致、後方一致の記述方法について紹介しました。
また、matchメソッドをif文に使用することで、正規表現に一致するか否かを評価できます。
ぜひご自身でソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)