php之正则表达式函数总结
php之正则表达式函数总结
匹配
用于匹配常用的函数有两个,分别是
preg_match
和preg_match_all
看代码:
//preg_match($pattern, $subject, &$match, [$flags=0], [$offset=0]) 一般三个参数 $pattern = '/[0-9]/'; //正则 $subject = 'abc1def2ghi3klm4'; //需要匹配的字符串 $return = preg_match($pattern, $subject, $matches); echo $return; //1 因为匹配到了1个就会停止匹配 print_r($matches); // ['1'] 将所有满足正则规则的匹配放到数组里。 //preg_match_all($pattern, $subject, $matches,...) $pattern = '/[0-9]/';//正则字符串 $subject = 'abc1def2ghi3klm4';//需要匹配的目标字符串 $return = preg_match_all($pattern, $subject, $matches); echo $return;//4 因为会匹配所有的 print_r($matches);//[0=>['1','2','3','4']] 注意是个二维数组。
替换
用于替换常用的函数也有两个
preg_replace
和preg_filter
,这两个灰常的相似!!!
看代码:
//preg_replace($pattern, $replacement, $subject) $pattern = '/[0-9]/'; $replacement = '嘿嘿嘿'; $subject = 'a1b2c3'; $return = preg_replace($pattern, $replacement, $subject); echo $return; //'a嘿嘿嘿b嘿嘿嘿c嘿嘿嘿' //preg_filter($pattern, $replacement, $subject) //和preg_replace 没有任何变化 $pattern = '/[0-9]/'; $replacement = '嘿嘿嘿'; $subject = 'a1b2c3'; $return = preg_filter($pattern, $replacement, $subject); echo $return; //'a嘿嘿嘿b嘿嘿嘿c嘿嘿嘿' //但是$pattern 和 $subject都是数组呢 $pattern = array('/[0-3]/', '/[4-6]/', '/[7-9]/'); $replacement = array('小', '中', '大'); $subject = array('a', 'b', '1as', 'd', 's5d', '7qq'); $return = preg_replace($pattern, $replacement, $subject); print_r($return); //结果 Array ( [0] => a [1] => b [2] => 小as [3] => d [4] => s中d [5] => 大qq ) $pattern = array('/[0-3]/', '/[4-6]/', '/[7-9]/'); $replacement = array('小', '中', '大'); $subject = array('a', 'b', '1as', 'd', 's5d', '7qq'); $return = preg_filter($pattern, $replacement, $subject); print_r($return); //结果 Array ( [2] => 小as [4] => s中d [5] => 大qq )
数组匹配 + 分割
分别是
preg_grep
和preg_split
看代码:
//趁热打铁 其实preg_grep呢 就是preg_filter的阉割版 只匹配 不替换而已 //preg_grep($pattern, $subject) $subject = ['r', 'a2', 'b3', 'c', 'd']; $pattern = '/[0-9]/'; $fl_array = preg_grep($pattern, $subject); print_r($fl_array); //结果: Array ( [1] => a2 [2] => b3 ) //注意索引 //preg_split($pattern, $subject) 返回分割后的数组 $subject = 'a132b456c777d'; $pattern = '/[0-9]+/'; 匹配至少一个数字 $return = preg_split($pattern, $subject); print_r($return); //结果: Array ( [0] => a [1] => b [2] => c [3] => d )
相关推荐
wangzhaotongalex 2020-10-20
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13
duanqingfeng 2020-09-29
rechanel 2020-11-16
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
phphub 2020-09-10
taomengxing 2020-09-07
MaggieRose 2020-08-19
flyingssky 2020-08-18
山水沐光 2020-08-18
jyj00 2020-08-15
AHuqihua 2020-08-09
山水沐光 2020-08-03