匹配正则

<?php
#你还在为正则伤脑筋吗 小编给大家带来常用的正则 如果有不懂得字符看看收册 方法不唯一不太全面 如果又不太明白的@请留言
/*
 * 第一章、认识正则
 * 1.1其实就是字符串规则表达式 只要是工程师 不管是前端的还是后端的都会用得到
 * 1.2查什么 查多少 从哪查
 * 1.3 正则的定义 '//' 与 '##' 是一样的
 */
/*
 * 第二章
 * 2.1 单词匹配
 $str = 'hello word zhang man zhao chao';
 $preg = '#\b[a-z]+\b#i';
 preg_match_all($preg,$str,$data);
 print_r($data);
 */
/*
 * 2.2 单词匹配 把开头zh的单词找出来
 $preg = '/\bzh[a-z]*\b/';
 $str = 'hello word zhang man zhao chao';
 preg_match_all($preg,$str,$data);
 print_r($data);
 */
/*
 * 2.3 匹配手机号码 只能是1开头的
 $preg = '/^1[34578]{1}\d{9}$/';
 $str = array('18437784282', '13782000394', '18141907470', '181100057925', '13800138000', '13426060134', '170235', '18289881234568782');
 foreach ($str as $v) {
 preg_match_all($preg, $v, $data);
 print_r($data);
 }
 */
/*
 * 2.4 匹配纯单词
 $reg = '#\b[a-z]*\b#i';
 $str = 'yelow break return continue die s1 单2';
 preg_match_all($reg, $str,$data);
 print_r($data);
 */
/*
 * 2.5 分割字符串中的单词
 $str = 'tommorw is another day , o2o , you
 dont    bird  kl;dsfjl  me i dont bird
 aklsdf,fsaldkflk
 you';
 $patt = '/\W+/';
 print_r(preg_split($patt, $str));
 */
/*
 * 2.6 把多个指标符换成一个制表符
 $str = 'tommorw is another day , o2o , you
 dont    bird  kl;dsfjl  me i dont bird
 aklsdf,fsaldkflk
 you';
 $preg = '#\s+#';
 print_r(preg_replace($preg, ' ', $str));
 */
/*
 * 2.7 把 hello hellooo helloooo hellooooo 替换为hello
 $str = 'helllllo helllllo helllllo hellllo';
 $preg = '#\bhel+o\b#';
 print_r(preg_replace($preg, 'hello', $str));
 */
/*
 * 2.8 查询出字母或者出数字的字符
 $str = 'slkjsdlk 1545454 asdklfkl5454 klsadf4554sadf klsadf sdaf asdfl55';
 $preg = '#\b[a-z]+\b|\b\d+\b#i';
 preg_match_all($preg, $str, $data);
 print_r($data);
 */
/*
 * 2.9 查询小米系列
 $str = 'mi2s,mi3,mi4,mi5,minote,mipad';
 $patt= '/\bmi(note|\d|2s|pad)\b/';
 preg_match_all($patt, $str, $res);
 print_r($res);
 */
/*
 * 2.1.0 把(g*d) 把*匹配出来
 $str = 'ksda good goooood good kl s ja dfs dk ';
 $patt = '/g.+d/U'; //U 代表非贪婪模式 默认贪婪模式?
 preg_match_all($patt, $str, $res);
 print_r($res);
 */
/*
 * 2.1.1 采集手机号
 $str = '张先生,你好 联系电话18437784282,备用电话18141907470,qq771186913';
 $preg = '/\b1[34578]{1}\d{9}\b/';  //正则中不认识汉字 只有ASCII才认识
 preg_match_all($preg, $str,$data);
 print_r($data);
 */
/*
 * 2.1.2 找首尾字母相同的单词 用到了后向引用
 $str = 'txt hello, high, bom , mum';
 $preg = '#\b([a-z]).\1\b#';
 preg_match_all($preg, $str,$data);
 print_r($data);
 */

/*
 * 2.1.3 把手机号中间4位替换为*
 $str = '18437784282,18141907470';
 $preg = '#(\d{3})\d{4}(\d{4})#';
 preg_match_all($preg, $str, $res);
 print_r(preg_replace($preg,'\1****\2',$str));
 */

/* 2.1.4 模式 i不区分大小写
 $str = 'hello WORLD, ChINa';
 $patt = '/\b[a-z]+\b/i';
 preg_match_all($patt, $str, $matches);
 print_r($matches);
 */

/*
 * 2.1.5 s模式 单行模式 把所有的看成一行
 $str = "abc haha
 abc dgh";
 $patt = '/.+/s';
 preg_match_all($patt, $str, $matches);
 print_r($matches);
 */
/*
 * 2.1.6  u 模式 把传过来的参数看成是Unicode字符集的编码 可以判断纯中文
 $str = '阿里的身份';
 $patt = '/^[\x{4e00}-\x{9fa5}]+$/u';
 echo preg_match($patt, $str) ? 'OK' : 'NO';
 */

/*
 * 2.1.7 预查 把单词为结尾mi找出来
 $str = 'xiaomi hongmi blackmi Helloween';
 $preg = '/\b[a-zA-Z]+(?=mi\b)/'; //零宽度 正预测  前瞻  断言
 preg_match_all($preg, $str,$expression);
 var_dump($expression);
 */

/*
 * 2.1.8 预查 把单词结尾为不是mi找出来
 $str = 'xiaomi hongmi blackmi Helloween';
 $preg = '/\b[a-z]+(?!mi)[a-z]{2}+\b/i'; // 零宽度 负预测 前瞻 断言
 preg_match_all($preg, $str,$expression);
 var_dump($expression);
 */
/*
 * 2.1.9  mi开头的单词
 $str = 'mixiao mihong miblack Helloween';
 $preg = '/(?<=\bmi)[a-zA-Z]+\b/'; // 零宽度 正预测 回顾 断言
 preg_match_all($preg, $str,$expression);
 var_dump($expression);
 */

/*
 * 2.2.0 把非mi开头的单词找出来
 $str = 'mixiao mihong miblack Helloween';
 $preg = '/\b[a-zA-Z]{2}(?<!mi)[a-zA-Z]*\b/'; // 零宽度 负预测 回顾 断言
 preg_match_all($preg, $str,$expression);
 var_dump($expression);
 */

<img src="https://img-blog.csdn.net/20160906093120380?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值