【PHP8.x】replacementプロパティの使い方

replacementプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『replacementプロパティは、RegexIteratorが正規表現にマッチした要素を置換する際に使用する、置換後の文字列を保持するプロパティです。このプロパティが有効になるのは、RegexIteratorオブジェクトのコンストラクタで、動作モードを示すフラグにRegexIterator::REPLACEが設定されている場合に限られます。通常、RegexIteratorは正規表現にマッチした要素を抽出しますが、REPLACEモードでは、マッチした要素をこのreplacementプロパティに設定された文字列で置き換えた結果を返します。この置換処理は、内部的にpreg_replace()関数と同様のルールで動作します。そのため、置換文字列内では、正規表現パターン内で丸括弧()によってキャプチャした部分文字列を、$1${2}といった後方参照の形式で埋め込むことが可能です。これにより、元の文字列の一部を活かしながら、動的に新しい文字列を生成できます。このプロパティを利用することで、配列などの繰り返し処理が可能なデータの中から、特定のパターンを持つ要素を検索し、一括で別の形式の文字列に変換する処理を効率的に実装できます。

構文(syntax)

1<?php
2$arrayIterator = new ArrayIterator(['test1', 'test2', 'test3']);
3
4$regexIterator = new RegexIterator(
5    $arrayIterator,
6    '/test(\d+)/',
7    RegexIterator::REPLACE
8);
9
10// 置換後の文字列を設定します。
11// '$1' は正規表現の最初のキャプチャグループを参照します。
12$regexIterator->replacement = 'item-$1';
13
14foreach ($regexIterator as $value) {
15    echo $value . PHP_EOL;
16}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

【PHP8.x】replacementプロパティの使い方 | いっしー@Webエンジニア