php面试笔记(6)-php基础知识-正则表达式考点

本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:[email protected]

在面试中,考官往往喜欢基础扎实的面试者,而正则表达式相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中正则表达式相关的注意点。

回顾真题

至少写出一种验证139开头的11位手机号码的正则表达式

答案:
/^139\d{8}$/

考点分析

很明显,面试官主要想考察大家对于正则表达式组成及编写方法的了解程度。继而衍生出正则表达式的作用:
1.分割

分隔符(定界符),主要是正斜线(/),表示一个正则表达式的开始和结束

2.查找
通用原子
\d :十进制0-9
\D :除了十进制0-9
\w:数字、字母、下划线
\W:除了数字、字母、下划线
\s:空白符(换行、空格、回车)
\S:除了空白符(换行、空格、回车)
元字符

模式修正符
U:懒惰模式
u:贪婪模式
i:忽略英文字母大小写
x:忽略空白
s:让元字符“.”匹配包括换行符在内所有字符
e:配合函数 preg_replace() 使用,可以把匹配来的字符串当作正则表达式执行

3.匹配
preg_match() //匹配一个
preg_match_all()// 匹配所有

4.替换
preg_replace()
preg_filler()

后向引用
在后面的表达式中,引用前面某个分组所匹配到的内容

<?php
/**
 * Created by 冷月小白.
 * 微信公众号: 学长冷月
 */

$str = '<b>abc</b>';
$pattern = '/<b>(.*)<\/b>/'; //一定要用括号
$res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组
var_dump($res); //string(3) "abc"

贪婪模式

<?php
/**
 * Created by 冷月小白.
 * 微信公众号: 学长冷月
 */

$str = '<b>abc</b><b>bcd</b>';
$pattern = '/<b>(.*?)<\/b>/u'; //贪婪模式
$res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组
var_dump($res); //string(3) "abc"

中文匹配
UTF-8汉字编码范围:
0x4e00-0x9fa5

一网打尽

请写出一个正则表达式,取出页面中所有的img标签中的src值

答案:

<?php
/**
 * Created by 冷月小白.
 * 微信公众号: 学长冷月
 */

$str = '<img alt="" id="" src="xxx.jpg" />';
$pattern = '/<img.*?src="(.*?)".*?\/?>/i';
preg_match($pattern,$str,$a);
var_dump($a);//string(7) "xxx.jpg"

如果这篇博文有帮助到您,可以帮冷月点一个赞或者加一个关注哦!

欢迎关注我的公众号:学长冷月,获得独家整理的学习资源和日常干货推送。
如果您对我的专题内容感兴趣,也可以关注我的博客:guoyu7.com

猜你喜欢

转载自www.cnblogs.com/guoyugy/p/12366825.html