preg_filter

正規表現による検索と置換を行う

説明

stringarraynull preg_filter(
    stringarray $pattern,
    stringarray $replacement,
    stringarray $subject,
    int $limit = -1,
    int &$count = null
)

preg_filterpreg_replace と似ていますが、マッチした結果 (を変換したもの) のみを返します。 この関数の挙動の詳細については preg_replace のドキュメントを参照ください。

パラメータ

引数の説明は、 preg_replace にあります。

戻り値

subject が配列の場合は配列を、それ以外の場合は文字列を返します。

マッチする結果が見つからなかったりエラーが発生したりした場合は、 subjectarray なら空の配列を返し、そうでなければ null を返します。

エラー / 例外

渡された正規表現のパターンがコンパイルできない場合、E_WARNING が発生します。

例1 preg_filterpreg_replace の比較

<?php
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); 
$pattern = array('/\d/', '/[a-z]/', '/[1a]/'); 
$replace = array('A:$0', 'B:$0', 'C:$0'); 

echo "preg_filter returns\n";
print_r(preg_filter($pattern, $replace, $subject)); 

echo "preg_replace returns\n";
print_r(preg_replace($pattern, $replace, $subject)); 
?>

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

preg_filter returns
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace returns
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)

参考