PHP preg_filter() 函數

PHP 正則運算式(PCRE)PHP 正則運算式(PCRE)

preg_filter 函數用於執行一個正則運算式搜索和替換。

語法

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

preg_filter() 等價於 preg_replace() ,但它僅僅返回與目標匹配的結果。

參數說明:

  • $pattern:要搜索的模式。可以是一個字串或字串數組。
  • $replacement:用於替換的字串或字串數組。
  • $subject:要進行搜索和替換的字串或字串數組。
  • $limit:可選,每個模式在每個subject上進行替換的最大次數。默認是 -1(無限)。
  • $count:可選,完成的替換次數。

實例

比較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 返回值:\n"; print_r(preg_filter($pattern, $replace, $subject)); echo "preg_replace 返回值:\n"; print_r(preg_replace($pattern, $replace, $subject)); ?>

執行結果如下所示:

preg_filter 返回值:
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace 返回值:
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_filter 只返回匹配結果,不匹配的直接忽略,而 preg_replace 將不匹配的結果 'A' 'B' 元素也一起返回。

PHP 正則運算式(PCRE)PHP 正則運算式(PCRE)