【正则入门】

语法

. (点) 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。
[\s\S] 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
\d [0-9]
\D 非数字;
\w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_];
\W 匹配\w的补集;

在这里插入图片描述

字符范围

$str = 'baidu o2o c2c xiling shuai 123 chou bage ';
//$patt= '/\b[a-zA-Z]+\b/';//加号表示多个不限;
$patt= '/\b[a-zA-Z]{5,}\b/';//最少有5个;
preg_match_all($patt,$str,$arr);
var_dump($arr);

结果:
在这里插入图片描述

找几个

  • *( 匹配前面的子表达式零次或多次);
  • +匹配前面的子表达式一次或多次;
  • ?匹配前面的子表达式零次或一次;
  • {n}n是一个非负整数。匹配确定的n次;
  • {n,m}m和n均为非负整数,其中n<=m,最少匹配n次,最多匹配m次;
  • {n,}n是一个非负整数。至少匹配n次;
$str='god goood   gooooooood';
$patt='/go+d/';
echo preg_replace($patt,'god',$str);

在这里插入图片描述

或者的 用法 |

$str = '211 hello 0210oo dkj44';
$patt = '/\b[a-zA-Z]+\b|\b\d+\b/';
preg_match_all($patt,$str,$res);
var_dump($res);

在这里插入图片描述

贪婪与非贪婪(正则默认是贪婪模式,在数量(+ * {n,})限定符后加?,非贪婪模式)

$str = 'ipad,iphone,imac,ipod,iamsorry,goood, god goooooooood jkl ljklkjklj';
//$patt = '/\bg.+d\b/';//贪婪模式  一直往后找
$patt = '/\bg.+?d\b/';//非贪婪模式  找到一个算一个
preg_match_all($patt,$str,$res);
var_dump($res);

贪婪模式结果

在这里插入图片描述

非贪婪模式结果

在这里插入图片描述

采集手机号

$str = '老王 买西瓜 联系15069091069,备用 电话 19935198152 QQ :1097848288,email 1097848289@qq.com,
xiguoahao 4576541244515069891526';
$patt = '/\b1[35879]\d{9}\b/';

preg_match_all($patt,$str,$res);
var_dump($res);

在这里插入图片描述

后向引用(第n个小括号内得子表达式,命中得内容,后面就佣\n来引用)


//找出首尾字母相同得单词
$str = 'txt hidffd hfihui jlkjlkj iuj hello bom mum';

$patt = '/\b([a-z])\w+\1\b/';

preg_match_all($patt,$str,$res);

var_dump($res);

在这里插入图片描述

//把手机号中间四位换成*
$str = '15069106959 19935198152';
$patt = '/\b(\d{3})\d{4}(\d{4})\b/';
//preg_match_all($patt,$str,$res);
$res=preg_replace($patt,'\1****\2',$str);
var_dump($res);

在这里插入图片描述

模式

模式修饰符,可以在一定程度上影响正则得解析行为
比如i,就代表正则不区分大小写,/[a-zA-Z]+/----->/[a-z]+/i
比如s,单行模式,就代表把整个文件看成一个“单行”
比如u 匹配中文

$str = 'hello world Chlha worLD';

//$patt = '/\b[a-z]+\b/'; //只匹配小写字母单词
$patt = '/\b[a-z]+\b/i';  //不区分大小写

preg_match_all($patt,$str,$res);

var_dump($res);

在这里插入图片描述
在这里插入图片描述

验证是否纯中文

$str = '时';

$patt = '/^[\x{4e00}-\x{9fa5}]$/u';//    \x   按ASCII码查,大括号中是对应的码

echo preg_match_all($patt,$str)?'chun':'zha';

预查

//取ing结尾得单词得词根
$str = 'hello  working  coming test wehn i am';

//前瞻   断言  正预测   零宽度
$patt = '/\b\w+(?=ing\b)/';//?=ing   后面是ing

preg_match_all($patt,$str,$res);

var_dump($res);

在这里插入图片描述

$str = 'hello  unworking  coming untest wehn i unam';

//零宽度   回顾    断言    正预测
$patt = '/(?<=\bun)\w+\b/';//    <   往前看      正预测   是否 ,,, 是  

preg_match_all($patt,$str,$res);

var_dump($res);

在这里插入图片描述

$str = 'hello  unworking  coming test wehn i am abc';

//前瞻   断言  负预测   零宽度
$patt = '/\b\w+(?!ing)\w{3}\b/';//满足3个且后三还不是ing得  单词长度大于3

preg_match_all($patt,$str,$res);

var_dump($res);

在这里插入图片描述

$str = 'hello  unworking  coming test wehn i am abc';

//找出不是un开头的单词
//回顾   断言  负预测   零宽度
$patt = '/\b\w{2}(?<!un)\w+\b/';

preg_match_all($patt,$str,$res);

var_dump($res);

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值