Функцыя preg_filter
Функцыя preg_filter
выконвае пошук і замену ў радку або масіве радкоў па рэгулярным выразе. У адрозненне ад preg_replace
, яна вяртае толькі тыя элементы, у якіх было знойдзена супадзенне. Першым параметрам прымае рэгулярны выраз, другім - радок замены, трэцім - радок або масіў для апрацоўкі.
У чацвёртым неабавязковым параметры можна задаць максімальную колькасць замен у кожным элеменце (па змаўчанні -1
, што азначае "без абмежаванняў").
У пятым неабавязковым параметры паказваецца зменная, у якую будзе запісана колькасць выкананых замен.
Сінтаксіс
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
,
якая правярае адпаведнасць рэгулярнаму выразу