202 of 410 menu

The preg_filter Function

The preg_filter function performs search and replace in a string or array of strings by regular expression. Unlike preg_replace, it returns only those elements where a match was found. The first parameter accepts a regular expression, the second - a replacement string, the third - a string or array to process. The fourth optional parameter can specify the maximum number of replacements in each element (default is -1, which means "no limit"). The fifth optional parameter specifies the variable into which the number of performed replacements will be written.

Syntax

preg_filter(pattern, replacement, subject, [limit = -1], [count]);

Example

Let's replace all digits in the string with the 'X' character:

<?php $res = preg_filter('/\d/', 'X', 'a1b2c3'); var_dump($res); ?>

Code execution result:

'aXbXcX'

Example

Let's process an array of strings, replacing digits with '#':

<?php $res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']); var_dump($res); ?>

Code execution result:

['a#', 'b#', 'd#']

Example

Let's demonstrate the difference from 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); ?>

Code execution result:

Filter result: ['a#', 'b#', 'd#'] Replace result: ['a#', 'b#', 'c', 'd#']

See Also

  • the preg_replace function,
    which performs replacement by regular expression
  • the preg_match function,
    which checks for a match with a regular expression
byenru