JavaScriptで文字列の中に指定した文字列や、パターンにマッチする部分文字列を抽出するmatch
メソッドについて書いています。
match
メソッドを使うと、文字列の中から特定の文字列やパターンに合致する部分を簡単に取り出すことができます。
文字列処理を行う際に、特定の文字列やパターンにマッチする部分文字列を取得したい場合に便利です。
実際に動くサンプルを使って、以下の操作を解説します。
・`match`メソッドの戻り値の詳細
・`test`メソッドとの違いは?
・`match`メソッドを使うメリット
matchメソッドの基本的な使い方
match
メソッドは、文字列の中に指定した文字列やパターンにマッチする部分文字列を検索し、マッチした結果を配列またはnullとして返します。
基本的な構文は以下のとおりです。
string.match(regexp)
regexp
: 検索する文字列または正規表現。- 文字列またはRegExpオブジェクト(必須)。
- 正規表現を使用する場合は、フラグ(g、i、mなど)を指定できます。
文字列にマッチする部分文字列を抽出する
match
メソッドに文字列を指定して、マッチするか確認します。
const str = 'Hello World!';
console.log(str.match('World')); // 結果:['World', index: 6, input: 'Hello World!', groups: undefined]
console.log(str.match('world')); // 結果:null
まず、str
文字列を作成しています。
そして、次の処理でmatch
メソッドを呼んで、中に’World’という文字列がマッチするかどうかを調べています。
str
文字列は’World’を含むため、match('World')
はマッチした結果を配列として返します。
配列の内容には、マッチした文字列、インデックス、元の文字列が返ってきています。
一方、’world’(小文字)はstr
文字列に含まれていないため、match('world')
はnull
を返します(大文字小文字は区別されます)。
正規表現を使ってマッチする部分文字列を抽出する
match
メソッドに正規表現を指定して、マッチするか確認します。
const str = 'Hello World! Hello!';
console.log(str.match(/Hello/g)); // 結果:['Hello', 'Hello']
str
文字列の中に’Hello’という文字列がマッチするかどうかを正規表現を使って調べています。
g
フラグ(global flag)を指定することで、文字列全体を検索し、マッチしたすべての部分文字列を配列として返します。
matchメソッドの戻り値の詳細
match
メソッドの戻り値は、引数regexp
が文字列の場合と正規表現の場合で異なります。
regexp
が文字列の場合:- マッチした場合は、マッチした部分文字列、インデックス、入力文字列などを含む配列を返します。
- マッチしなかった場合は、
null
を返します。
regexp
が正規表現の場合:g
フラグを指定した場合:マッチしたすべての部分文字列を含む配列を返します。g
フラグを指定しない場合:マッチした部分文字列、インデックス、入力文字列などを含む配列を返します。- マッチしなかった場合は、
null
を返します。
testメソッドとの違いは?
match
メソッドとtest
メソッドは、どちらも文字列が特定のパターンにマッチするかどうかを調べるために使用されます。
しかし、両者の間にはいくつかの違いがあります。
- 戻り値:
match
メソッドは、マッチした部分文字列を配列として返します。test
メソッドは、マッチしたかどうかを真偽値(trueまたはfalse)として返します。
- 正規表現のフラグ:
match
メソッドは、gフラグ(global flag)を指定することで、マッチしたすべての部分文字列を配列として返すことができます。test
メソッドは、gフラグを指定しても、最初にマッチした部分文字列があるかどうかを判定するだけです。
下記はサンプルコードです。
test
メソッドはtrue/false
を返すだけですが、match
はマッチした部分文字列を取得できます。
const str = 'Hello World! Hello! Hello!!';
console.log(/Hello/g.test(str)); // 結果: true
console.log(str.match(/Hello/g)); // 結果: ['Hello', 'Hello', 'Hello']
matchメソッドを使うメリット
match
メソッドを使う主なメリットは以下のとおりです。
- 文字列の検索: 文字列の中に特定の文字列やパターンが含まれているかどうかを簡単に判定できます。
- 部分文字列の抽出: 文字列の中から特定の文字列やパターンにマッチする部分文字列を抽出できます。
- 柔軟な検索: 正規表現を使用することで、より複雑なパターンにマッチする部分文字列を検索できます。
正規表現を使って、マッチする個数を調べたりしたい場合に使うとよさそうです。
単純に、文字列が含まれるかどうか確認する場合にはincludes
メソッドを使うと良いでしょう。
JavaScriptのmatchメソッドの使い方まとめ
今回はJavaScriptのmatch
メソッドの使い方について解説しました。
記事の内容をまとめます。
・`regexp`は検索する文字列または正規表現(必須)。
・マッチした場合は、マッチした結果を配列またはnullとして返す。
・正規表現を使用することで、より複雑なパターンにマッチする部分文字列を検索できる。
コメント