<?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="" />
匹配正则
最新推荐文章于 2023-04-26 09:39:44 发布