zoukankan      html  css  js  c++  java
  • PHP 正则表达式

      PHP 中有两套正则库;PCRE和POSIX;PHP5.3以后不在提倡用POSIX 然而POSIX字眼却也是经常看见的,比如在一些Linux工具书中;

          正则的组成:一般而言包括,分隔符,表达式,修饰符;

          元字符:表达式中具有特殊记忆的字符;就像我们Java中的class这样的字眼;

          .      匹配出换行符外任意字符

          w    匹配字母或者数字或者下划线或者汉字

          s     匹配任意空白字符

          d     匹配数字

               匹配单词的开始或者结束

          ^      匹配字符串的开始  

          $      匹配字符串的结束

          -      表示范围 比如 [a-z]  

          []     表示括号中任意一个字符 分组符

          *  +   ? 量词   * 表示重复0次或者更多次 +表示重复一次或者更多次 ?表示重复0次或者1次 另外{}  {7}表示重复7次 {7,}重复7次以上 {7,10}表示重复6次以上11次以下

          一些表达式帮助理解

          cw*       表示开头的字符 不如canada candu c_ds_ds   

           d+              表示可以正负无穷的数子

           w{8}     表示长度为8的单词

            0dd - ddddddd   表示类似 030 - 0392393 这样 等价于 0d{2} - d{7}

        转义:去掉齐被赋予的含义,看成普通字符;用 比如* * 另外Q E 之间的任意元字符都会当成普通字符看待

                    另外字符组中所有表示非单个的元字符都会看成普通字符,因为字符组匹配单个;

            反义:取反;

            w  反义为W d D s S  B [^x] 处x 意外任意字符 

            分支:()分支就是在分组的单个层面上扩展为了多个;例如(a|vn|cnm)at 匹配aat vmat cnmat

            反向引用:重复搜索匹配,某个分组匹配的文本;如果未给分组命名的情况下,按照从左至右的顺序依次编号为1 2 3 4..... 也可以命名例如(?<same>w+)s + k<same> 这样可以匹配go go pity pity 这样的

            环视:四种模式 顺序肯定环视(?=exp);逆序肯定环视(?<=exp);顺序否定环视(?!exp),逆序否定环视(?<!exp);

                    abcdefg  .*(? <=abc)  将匹配defg

                    逆序是查看自身位置的前面 顺序是自身位置后面 后面表现在位置左边 前面表现为位置右边

            贪婪/懒惰匹配模式:一个是尽可能多的匹配一个是尽可能少的匹配 比如、a .* b 如果匹配abcbcb 会整个匹配abcbcb 这就是贪婪 如果a.*? b 就是懒惰模式了

            

            

            

             

            

             

    积累知识,分享知识,学习知识。
  • 相关阅读:
    最详细最权威的Android 编码规范
    一款实用的工具手机软件
    一个简单的四则运算程序(优化)
    随笔
    一个简单的四则运算程序
    随手记(四)
    随手记(三)
    随手记(二)
    随手记(一)
    大学生生活中的三大痛点
  • 原文地址:https://www.cnblogs.com/bin-pureLife/p/4706035.html
Copyright © 2011-2022 走看看