• 正则表达式修饰符 i、g、m、s、U、x、a、D、e 等。


    正则表达式中常用的模式修正符有i、g、m、s、U、x、a、D、e 等。

    它们之间可以组合搭配使用。

    i 不区分(ignore)大小写;
    例如: /abc/i 可以匹配 abc、aBC、Abc 
    g 全局(global)匹配 
    如果不带g,正则过程中字符串从左到右匹配,找到第一个符合条件的即匹配成功,返回
    如果带g,则字符串从左到右,找到每个符合条件的都记录下来,知道字符串结尾位置
    例如: 
    var str = 'aaaaaaaa'
    var reg1 = /a/;  str.match(reg1)  // 结果为:["a", index: 0, input: "aaaaaaaa"]
    var reg2 = /a/g; str.match(reg2)  // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]
    
    m 多(more)行匹配
    若存在换行
    并且有开始^或结束$符的情况下,和g一起使用实现全局匹配,
    因为存在换行时默认会把换行符作为一个字符任务匹配字符串是个单行,
    g只匹配第一行,添加m之后实现多行,每个换行符之后就是开始
    var str = "abcggab
    abcoab";
    var preg1 = /^abc/gm;  str.match(preg1)  // 结果为:["abc", "abc"]
    var preg2 = /ab$/gm;   str.match(preg2)  // 结果为:["ab", "ab"]
    
    
    
    s 特殊字符圆点 . 中包含换行符
    默认的圆点 . 是 匹配除换行符 
     之外的任何单字符,加上s之后, . 中包含换行符
    $str = "abggab
    acbs";
    $preg = "/b./s";
    preg_match_all($preg, $str,$matchs);
    print_r($matchs);//Array ( [0] => Array ( [0] => bg [1] => b [2] => bs ) ) 
    
    U 只匹配最近的一个字符串;不重复匹配; 
    $mode="/a(.*?)c/";
    $preg="/a.*c/U";//这两个正则返回相同的值
    $str="abcabbbcabbbbbc" ;
    preg_match($mode,$str,$content);   echo $content[0];//abc
    preg_match($preg,$str,$content);   echo $content[0];//abc
    //修正符:x 将模式中的空白忽略; 
    //修正符:A 强制从目标字符串开头匹配;
    //修正符:D 如果使用$限制结尾字符,则不允许结尾有换行; 
    //修正符:e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行;  
    
  • 相关阅读:
    .net序列化和反序列化(一)——自动序列化
    在Sql Server 2005使用公用表表达式CTE简化复杂的查询语句
    使用JQuery与iframe交互
    FCKeditor自定义工具栏和定义多个工具栏
    FCKeditor自定义非空验证
    PHP5.3.6的IIS配置
    Linux下缓存服务器的应用
    PHP采集程序中常用的函数
    关于PHP5.3.x和Zend Optimizer(Zend Guard Loader),以及shopex4.8.5安装的问题
    SQLserver数据库还原出现错误112(磁盘空间不足)的解决办法
  • 原文地址:https://www.cnblogs.com/kinwing/p/11128796.html
Copyright © 2020-2023  润新知