• PHP正则表达式


    PHP正则表达式

      一、函数:

        1、preg_match(匹配一次)

        

        2、preg_match_all(匹配多次,全局匹配)

        

        3、preg_replace

        

        4、preg_split

        

      二、PHP正则语法

        1、限定符:可以是//,也可以##

        2、元字符

          1)、使用一个字符本身,来代表一个字符

          2)、使用一个转义字符表示一个字符

            

          3)、表示一个集合中某一个字符

            [begin-end],如[a-zA-Z]:表示所有字母

            [^abc]:除abc外其他的字符

          4)、点.:表示出换行之外的任意一个字符

            |或者,如:$reg = '/red|blue|green/';

          5)、中文范围:[x{4e00}-x{9fa5}] 限定符后面加u,表示以utf-8形式匹配

        3、量词:用在元字符后面,用来约束筛选的字符数量

          1)、{m,n}:最少m个,最多n个

          2)、{m}:固定m个

          3)、特殊的量词:

            *:表示任意一个数量,可能是0个,也可能是多个

            +:表示至少有一个

            ?:表示可能0个,可能1个

            ****** 注:?放在量词的后面,表示采用懒惰模式匹配,PHP默认贪婪模式

        4、其他

            ^表示被匹配字符串必须以后面的字符开头,

            $表示被匹配的字符串必须以$前面的字符结束

            如:'/^red[w]*[d]$/':以red开头,以数字结尾

        5、模式修正符:

          i:忽略大小写

          s:万能点模式,  .  能匹配任意字符

          u:强制使用utf-8解析中文

          U:全局懒惰模式,匹配一个字符

      三、分组

        1、使用小括号将匹配的结果分组,筛选出我们需要的内容

          preg_metch()匹配后,将结果保存在数组中

          索引为0,为整个规则匹配的结果

          索引为1,为第一个分组

          索引为2,为第二个分组

          。。。

        2、反向引用分组:

          在$reg规则里引用分组,使用 ,1表示引用第一个分组;2表示引用第二个分组

        3、非捕获子组:

          如果不想筛选分组的结果,可以在分组()里使用?:,表示非捕获

          $reg = '/<img.*src=(?:.*).*"/';

      代码:

        

        

      

      四、预查

        1、正向预查:匹配时,从左到右匹配到需要预查的地方,先看看是什么内容

          (?=预查的内容)

          示例代码:

          

          执行结果

          

          由于采用懒惰模式,所以只匹配了helloC;   

        2、非正向预查

          预先从左到右查看一下,后面不是某个字符(?!)

          

          

        3、逆向预查  

          从右向左先预查(?<=)

          

          

        4、非逆向预查(?<!)

          

          

        练习:

          1、将TopicQuestionModel修改为topic_question_model

          

      

  • 相关阅读:
    less本地环境输出hello-world
    HTML中的SEO和HTML语义化
    JS连等赋值的坑
    React官网首页demo(单文件实现版)
    高并发高可用的架构实践-静态架构蓝图(二)
    高并发高可用的架构实践-设计理念(一)
    云计算+区块链=BaaS
    001/Nginx高可用模式下的负载均衡与动静分离(笔记)
    001---mysql分库分表
    004--PowerDesigner设置显示1对多等关系
  • 原文地址:https://www.cnblogs.com/helloJiu/p/6171146.html
Copyright © 2020-2023  润新知