関数 preg_filter
関数 preg_filter は、文字列または文字列の配列に対して正規表現による検索と置換を実行します。preg_replace とは異なり、一致が見つかった要素のみを返します。最初のパラメータは正規表現、2番目は置換文字列、3番目は処理対象の文字列または配列を受け取ります。
4番目のオプションパラメータでは、各要素での最大置換回数を指定できます(デフォルトは -1 で、「制限なし」を意味します)。
5番目のオプションパラメータでは、実行された置換の回数が書き込まれる変数を指定します。
構文
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
例
文字列内のすべての数字を文字 'X' に置き換えます:
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
コードの実行結果:
'aXbXcX'
例
文字列の配列を処理し、数字を '#' に置き換えます:
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
コードの実行結果:
['a#', 'b#', 'd#']
例
preg_replace との違いを実演します:
<?php
$input = ['a1', 'b2', 'c', 'd4'];
$res_filter = preg_filter('/\d/', '#', $input);
$res_replace = preg_replace('/\d/', '#', $input);
echo "Filter result: ";
var_dump($res_filter);
echo "Replace result: ";
var_dump($res_replace);
?>
コードの実行結果:
Filter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']
関連項目
-
正規表現による置換を実行する関数
preg_replace、 -
正規表現との一致を確認する関数
preg_match、