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

本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,若有侵权请联系我进行删除,email:guoyugygy@163.com

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

回顾真题

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

答案:
/^139d{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()编码

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

<?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
相关文章
相关标签/搜索