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

作者: 学长冷月 分类: PHP 发布时间: 2020-05-05 点击量: 353

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

回顾真题

至少写出一种验证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()

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

  1. <?php
  2. /**
  3. * Created by 冷月小白.
  4. * 微信公众号: 学长冷月
  5. */
  6. $str = '<b>abc</b>';
  7. $pattern = '/<b>(.*)<\/b>/'; //一定要用括号
  8. $res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组
  9. var_dump($res); //string(3) "abc"

贪婪模式

  1. <?php
  2. /**
  3. * Created by 冷月小白.
  4. * 微信公众号: 学长冷月
  5. */
  6. $str = '<b>abc</b><b>bcd</b>';
  7. $pattern = '/<b>(.*?)<\/b>/u'; //贪婪模式
  8. $res = preg_replace($pattern,'\1',$str); //将第一个匹配到的数据放入数组
  9. var_dump($res); //string(3) "abc"

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

一网打尽

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

答案:

  1. <?php
  2. /**
  3. * Created by 冷月小白.
  4. * 微信公众号: 学长冷月
  5. */
  6. $str = '<img alt="" id="" src="xxx.jpg" />';
  7. $pattern = '/<img.*?src="(.*?)".*?\/?>/i';
  8. preg_match($pattern,$str,$a);
  9. var_dump($a);//string(7) "xxx.jpg"

如果觉得我的文章对您有用,可以关注冷月的公众号或者加冷月的微信。获得独家整理的学习资源和日常干货推送!

学长冷月的公众号

学长冷月的公众号

学长冷月的微信

学长冷月的微信
php,面试,正则表达式
0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注