php使用正则匹配数组中指定的元素
在php可以使用preg_grep()
函数来使用正则表达式匹配数组中的元素。
preg_grep()
函数可以搜索数组中的所有元素,并返回与正则表达式匹配的所有元素所组成的数组。
实例一:
<?php
header('content-type:text/html;charset=utf-8');
$array = array(1.5, 6, 3.8, 53, 7.9);
echo "原数组:";
var_dump($array);
// 返回所有包含浮点数的元素
$fl_array = preg_grep("/^(d+)?.d+$/", $array);
echo "返回所有包含浮点数的元素:";
var_dump($fl_array);
?>
实例二:
<?php
header('content-type:text/html;charset=utf-8');
$test_arr = array(
'编程基础学习网',
'https://ipkd.cn/',
'php教程',
'HJKLLUEJ'
);
$preg = '/^[a-z]/';
$preg_arr_1 = preg_grep($preg, $test_arr);
$preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT);
echo '<pre>';
var_dump($preg_arr_1);
var_dump($preg_arr_2);
?>
参数说明如下:
$pattern
:要搜索的模式,也就是定义好的正则表达式;
$input
:要搜索的数组;
$flags
:可选参数,可以设置为 PREG_GREP_INVERT
,这时函数会返回数组中与给定模式 $pattern
不匹配的元素组成的数组。
perg_grep()
函数将遍历 $input
数组中的每一个元素,让该元素与模式 $pattern
进行匹配,然后将匹配成功或者匹配失败的元素返回。