Php/docs/function.preg-replace-callback-array

提供:Dev Guides
< Php
移動先:案内検索

preg_replace_callback_array

(PHP 7)

preg_replace_callback_array正規表現検索を行い、コールバック関数を使用して置換を行う


説明

preg_replace_callback_array ( array $pattern , string|array $subject [, int $limit = -1 [, int &$count = null [, int $flags = 0 ]]] ) : string|array|null

この関数の動作は、preg_replace_callback() に似ていますが、 コールバック関数が、パターン単位ペースで実行されるところが異なります。


パラメータ

pattern
パターンをキーとし、callable を値とする連想配列です。
subject
文字列あるいは文字列の配列で、 検索および置換の対象となる文字列を指定します。
limit
subject 文字列における 各パターンの最大置換回数。デフォルトは -1 (無制限) です。
count
指定した場合は、置換を行った回数がここに格納されます。
flags
flags には、 PREG_OFFSET_CAPTUREPREG_UNMATCHED_AS_NULL の組み合わせが指定できます。 これは matches 配列のフォーマットに影響します。 詳細は preg_match() 関数の説明を参照してください。


返り値

preg_replace_callback_array() は、 subject が配列の場合には配列を、 それ以外の場合は文字列を返します。 エラー時の返り値は null となります。

マッチするものが見つかった場合は新しい subject を返し、それ以外の場合はもとの subject をそのまま返します。


変更履歴

バージョン 説明
7.4.0 パラメータ flags が追加されました。


例1 preg_replace_callback_array() の例

<?php$subject = 'Aaaaaa Bbb';preg_replace_callback_array(    [        '~[a]+~i' => function ($match) {            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;        },        '~[b]+~i' => function ($match) {            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;        }    ],    $subject);?>

上の例の出力は以下となります。


6 matches for "a" found
3 matches for "b" found

参考