博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php之正则表达式函数总结
阅读量:5873 次
发布时间:2019-06-19

本文共 2200 字,大约阅读时间需要 7 分钟。

php之正则表达式函数总结

  • ##匹配 用于匹配常用的函数有两个,分别是preg_matchpreg_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_replacepreg_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_greppreg_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)复制代码

转载地址:http://uxenx.baihongyu.com/

你可能感兴趣的文章
ABP源码分析四十:ZERO的Application和Tenant
查看>>
[论文]Clustering-Based Ensembles as an Alternative to Stacking
查看>>
SVN clean失败解决方法
查看>>
正则判断手机号是不是11位
查看>>
清浮动,防止上下margin重叠(浏览器顶部空白崩溃)
查看>>
2018年终总结
查看>>
StringBuffer与StringBuilder
查看>>
同步、异步、阻塞、非阻塞 简析
查看>>
PYthon常用模块 logging 日志
查看>>
BZOJ1257:[CQOI2007]余数之和(整除分块)
查看>>
[Android]HttpPost之post请求传递Json数据
查看>>
在View页面,使用@if(){ }输出判断正确的内容
查看>>
js或jquery如何获取父级、子级、兄弟元素(包括祖级、孙级等)
查看>>
软件测试为什么需要学习Linux的知识?Linux学到什么程度?-log5
查看>>
amazon中文文档
查看>>
CodeVs 1017 乘积最大(DP)
查看>>
智能运维基础设施
查看>>
01.LoT.UI 前后台通用框架分解系列之——小图片背景全屏显示(可自动切换背景)...
查看>>
[BZOJ] 3301: [USACO2011 Feb] Cow Line
查看>>
KNN K近邻算法
查看>>