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

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

作者: 学长冷月 | 来源:发表于2020-02-26 14:16 被阅读0次

    本文是根据慕课网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基础知识-正则表达式考点

          本文链接:https://www.haomeiwen.com/subject/tgkvchtx.html