zoukankan      html  css  js  c++  java
  • 正则表达式修饰符 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()使用, 可以把匹配来的字符串当作正则表达式执行; 

    以上转自 https://www.cnblogs.com/kevin-yuan/archive/2012/09/25/2702167.html

    原文:https://blog.csdn.net/qq_36340642/article/details/79352876

  • 相关阅读:
    【HDOJ】2267 How Many People Can Survive
    【HDOJ】2268 How To Use The Car
    【HDOJ】2266 How Many Equations Can You Find
    【POJ】2278 DNA Sequence
    【ZOJ】3430 Detect the Virus
    【HDOJ】2896 病毒侵袭
    求奇数的乘积
    平方和与立方和
    求数列的和
    水仙花数
  • 原文地址:https://www.cnblogs.com/showcase/p/11588165.html
Copyright © 2011-2022 走看看