PCRE 関数
preg_grep
PCRE 関数
PHP Manual

# preg_filter

(PHP 5 >= 5.3.0)

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

### 説明

mixed preg_filter ( mixed `$pattern` , mixed `$replacement` , mixed `$subject` [, int `$limit` = -1 [, int `&$count` ]] )

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

### 返り値

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

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

### 例

例1 preg_filter() と preg_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
    )

### 参考

- preg_replace() - 正規表現検索および置換を行う
- preg_replace_callback() - 正規表現検索を行い、コールバック関数を使用して置換を行う
- preg_grep() - パターンにマッチする配列の要素を返す
- preg_last_error() - 直近の PCRE 正規表現処理のエラーコードを返す
- PCRE のパターン

PCRE 関数
preg_grep
PCRE 関数
PHP Manual