专栏首页冷月带你手撕代码php面试笔记(6)-php基础知识-正则表达式考点

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

php基础知识-正则表达式考点

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

01

回顾真题

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

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

02

考点分析

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

  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

03

一网打尽

在学习了本博文之后,冷月来测试一下大家对于知识的掌握程度。请看下面这道题:

请写出一个正则表达式,取出页面中所有的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"

本文分享自微信公众号 - 学长冷月(v8688886),作者:冷月小白

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP基础编程之鬼斧神工的正则表达式-正则表达式初探+常用的正则表达式函数

    很多小伙伴在学习php中,正则表达式是一道过不去的坎,初学者在看到正则表达式的复杂符号时,总会一头雾水,丈二的和尚摸不着头脑,冷月在刚刚开始学习正则表达式时也是...

    学长冷月
  • php面试笔记(5)-php基础知识-自定义函数及内部函数考点

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

    学长冷月
  • php面试笔记(3)-php基础知识-运算符

    回顾真题 abc()和@abc()之间的区别? 答案:PHP 支持一个错误控制运算符:@。当将其放 置在一个 PHP 表达式之前,该表达式可能产生的任 何错误...

    学长冷月
  • Android-Retrofit简介

    上一篇文章讲了RxJava,这一篇当然就该讲Retrofit了,参考资料: https://blog.csdn.net/gumufuyun/article/d...

    android_薛之涛
  • WebSocket客户端断开连接后,服务器端的处理机制

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 初学TensorFlow机器学习:如何实现线性回归?(附练习题)

    选自Technica Curiosa 作者:Nishant Shukla 机器之心编译 参与:Jane W 本文的作者 Nishant Shukla 为加州大学...

    机器之心
  • 感知机初探

    感知机模型的假设空间:定义在特征空间中的所有线性分类模型(linear classification model)或线性分类器(linear classifie...

    王强
  • 姗姗来迟的疫苗是否值得等待

    本期「熊言熊语」是我们科普系列的第一期节目,听日本京都大学的医学博士斯佳聊聊疫苗那些事儿。

    生信菜鸟团
  • RxAndroid完全教程

    不知现在的编辑,能否好用一些呢?希望大家有什么意见,在公众号直接回复即可,想了解哪些知识点,也可以直接留言了。 炎炎夏日,清凉一夏 这章节主要介绍下Rx系列的经...

    用户1263308
  • 使用scHCL探索单细胞转录组细胞类型

    浙江大学郭国骥团队致力于单细胞测序领域的相关研究,2020年3月26日,郭国骥团队在nature发表了人类单细胞水平的细胞景观。文章题目为:Constructi...

    生信技能树jimmy

扫码关注云+社区

领取腾讯云代金券