php面试笔记(6)-php基础知识-正则表达式考点
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com
在面试中,考官往往喜欢基础扎实的面试者,而正则表达式相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中正则表达式相关的注意点。
回顾真题
至少写出一种验证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
php面试笔记(6)-php基础知识-正则表达式考点的更多相关文章
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- 【Java面试】1、基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充. 源码分享:https: ...
- MySQL必知必会笔记——查询的基础知识
查询基础知识 第七章 数据过滤 组合where子句 MySQL允许给出多个WHERE子句.这些子 句可以两种方式使用:以AND子句的方式或OR子句的方式使用. AND操作符 可使用AND操作符给WHE ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- Spring笔记01(基础知识)
1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现“一站式”的企业应用开发 ...
- [terry笔记]data guard基础知识
如下介绍了data guard的基础知识,整理自网络: Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时 ...
- Java 8实战之读书笔记二:基础知识
好记性不如烂笔头,整理一些个人觉得比较重要的东西. 一.基础知识 第1章 为什么要关心Java 8 Java 8提供了一个新的API(称为"流", Stream),它支持许多处理数 ...
- FreeRTOS学习笔记——FreeRTOS 任务基础知识
RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习RTOS 系统的工程师或者学生主要就是为了使用RTOS 的多任务处理功能,初步上手RTOS 系统首先必须掌握的也是任务的创建 ...
随机推荐
- C++模板编程与宏编程经验谈
C++模板编程与宏编程经验谈 有人说C 与C++的不同主要是因为C++支持模板,不要说区别是面向对象化编程,因为C同样能很好的实现对象化编程,面向对象化其实只是思想,在很多语言中都能实现,区别在于实现 ...
- Qt常用UI控件读取、写入方法
本文用途:快速备忘,方便调用,写熟了自然就记下了. [1.标签label] 读取:ui->label->text() 写入:ui->label->setText("p ...
- CSS-09-背景属性
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 虚拟环境vitualenv的使用
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...
- 一个基于RabbitMQ的可复用的事务消息方案
前提 分布式事务是微服务实践中一个比较棘手的问题,在笔者所实施的微服务实践方案中,都采用了折中或者规避强一致性的方案.参考Ebay多年前提出的本地消息表方案,基于RabbitMQ和MySQL(JDBC ...
- Shell常用命令之yum
介绍 yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理 ...
- 白话 spring AOP
------------------------------------ 剩下的时间不多了,抓经做自己想做的吧 AOP: 专业术语叫做面向切面的编程 为什么要使用aop: 为了简化代码, 将相同代码抽 ...
- docker启动redis端口映射错误问题解决
今天使用docker安装redis,使用的时候出现了一些问题.第一次安装好后,在虚拟机后台启动了redis,然后在连接虚拟机的redis的时候怎么也连不上.出现这种情况我第一反应是防火墙没有开启所以我 ...
- JavaScript面向对象:创建对象
1.初级创建对象 var oCar=new Object; oCar.color='red'; oCar.door=4; oCar.map=3; oCar.showColor=function () ...
- 保存网页内容到excel
from selenium import webdriverfrom time import sleepfrom selenium.common.exceptions import NoSuchEle ...