【PHP8.x】MATCH定数の使い方

MATCH定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

MATCH定数は、RegexIteratorクラスの動作モードの一つである「マッチング」を表す定数です。RegexIteratorは、配列やファイルの内容といった繰り返し可能なデータ(イテレータ)の各要素に対して正規表現を適用し、条件に一致したものだけを抽出するためのクラスです。このMATCH定数をRegexIteratorのコンストラクタで指定すると、イテレータの要素が正規表現に一致した場合、その要素の元の値全体が返されるようになります。例えば、文字列の配列から特定のキーワードを含む要素だけを抜き出したい場合、このモードを使用すると、一致した文字列そのものを得ることができます。このとき、返される値に対応するキーは、元のイテレータのキーがそのまま維持されます。これは、正規表現に一致した部分文字列の配列を返すGET_MATCHモードとは異なり、単純に要素をフィルタリングする目的で利用される最も基本的な動作モードです。したがって、MATCH定数は、正規表現を用いてイテレータから要素を絞り込み、一致した要素の値をそのまま取得したい場合に指定します。

構文(syntax)

1<?php
2
3$array = ['apple', 'banana', 'apricot', 'cherry'];
4$iterator = new ArrayIterator($array);
5
6// 'a' で始まる要素を検索し、マッチした文字列全体を取得します。
7$regexIterator = new RegexIterator(
8    $iterator,
9    '/^a/',
10    RegexIterator::MATCH // マッチした文字列全体を返すモード (デフォルト)
11);
12
13foreach ($regexIterator as $value) {
14    echo $value . PHP_EOL;
15}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません