JavaScript Regex match()

概要: このチュートリアルでは、正規表現と文字列を照合するための JavaScript 文字列 match() メソッドについて学習します。

match() メソッドの仕組みと効果的な使用方法を理解するには、正規表現の基本的な知識が必要です。

JavaScript match() メソッドの紹介

文字列 match() メソッドは、文字列正規表現と照合します。

str.match(regexp);
Code language: JavaScript (javascript)

regexp が正規表現でない場合、match()RegExp() コンストラクターを使用して正規表現に変換します。 match() は、正規表現がグローバルフラグ (g) を使用するかどうかに応じて、配列を返します。

  • regexpg フラグを使用する場合、match() メソッドはすべての一致を含む配列を返します。結果はキャプチャグループを含みません。
  • regexpg フラグを使用しない場合、match() メソッドは最初の一致とその関連するキャプチャグループを返します。一致の結果は、追加のプロパティを持つ RegExp.exec() と同じ結果です。詳細は以下の例を参照してください。

一致が見つからない場合、match()null を返します。

JavaScript Regex match() メソッド

match() メソッドの使用例をいくつか見てみましょう。

1) グローバルフラグを持つ式で JavaScript regex match() メソッドを使用する

次の例は、グローバルフラグ (g) を使用して match() メソッドを使用する方法を示しています。一致の配列を返します。

let str = "Price: $5–$10";
let result = str.match(/\$\d+/g);
console.log(result);
Code language: JavaScript (javascript)

出力

["$5", "$10"]
Code language: JavaScript (javascript)

この例では、match()$ 記号の後に続く任意の数字を検索します。

2) グローバルフラグを持つ式で JavaScript regex match() メソッドを使用する

次の例は、グローバルフラグのない正規表現で match() メソッドを使用する方法を示しています。最初の一致と追加のプロパティの配列を返します。

let str = "Price: $5–$10";
let result = str.match(/\$\d+/);
console.log(result);
Code language: JavaScript (javascript)

出力

追加のプロパティは以下のとおりです。

  • index: 一致が見つかったインデックスです。
  • input: 検索文字列のコピーです。
  • groups: 名前付きキャプチャグループのオブジェクトで、キーと値はそれぞれ名前とキャプチャグループです。この例では、名前付きキャプチャグループを定義していないため、undefined です。

3) 名前付きキャプチャグループで JavaScript Regex match() メソッドを使用する

以下は、名前付きキャプチャグループmatch() メソッドを使用する方法を示しています。 "yellow""color" という名前のグループにキャプチャします。

let str = 'I like yellow color palette!';

let re = /(?<color>yellow) color/;
let result = str.match(re);

console.log(result);
Code language: JavaScript (javascript)

出力:

JavaScript String match with named capturing group

このチュートリアルでは、JavaScript 文字列 match() メソッドを使用して、文字列を正規表現と照合する方法を学習しました。

このチュートリアルは役に立ちましたか?