略微加速

略速 - 互联网笔记

正则表达式中模式修正符作用详解(i、g、m、s、x、e)

2017-03-15 leiting (3139阅读)

标签 正则表达式

正则表达式中常用的模式修正符有i、g、m、s、x、e等。它们之间可以组合搭配使用。

它们的作用如下:

     //修正符:i 不区分大小写的匹配; 

         //如:"/abc/i"可以与abc或aBC或ABc等匹配;

    //修正符:g表示全局匹配


    //修正符:m 将字符串视为多行,不管是那行都能匹配; 

       例://模式为:$mode="/abc/m"; 
         //要匹配的字符串为:$str="bcefg5e\nabcdfe" 
             //注意其中\n,换行了;abc换到了下一行; 
         //$str和$mode仍可以匹配,修正符m使得多行也可匹配; 
    //修正符:s 将字符串视为单行,换行符作为普通字符; 

       例://模式为:$mode="/pr.y/"; 
           //要匹配字符串为:$str="pr\ny"; 
           //两者不可匹配; . 是除了换行以外的字符可匹配; 
           //修改下模式为:$mode="/pr.y/s"; 
               //其中修正符s将\n视为普通字符,即不是换行; 
           //最后两者可以匹配; 
    //修正符:x 将模式中的空白忽略; 
    //修正符:A 强制从目标字符串开头匹配; 

         例://$mode="/abc/A"; 
           //可以与$str="abcsdfi"匹配, 
           //不可以与$str2="sdsdabc"匹配; 
           //因为$str2不是以abc开头; 
    //修正符:D 如果使用$限制结尾字符,则不允许结尾有换行; 

         例://模式为:$mode="/abc$/"; 
           //可以与最后有换行的$str="adshabc\n"匹配; 
           //元子符$会忽略最后的换行\n; 
           //如果模式为:$mode="/abc/D", 
           //则不能与$str="adshabc\n"匹配, 
           //修正符D限制其不可有换行;必需以abc结尾; 
    //修正符:U 只匹配最近的一个字符串;不重复匹配; 

         例: 
             如模式为: 
            $mode="/a.*c/"; 
            $str="abcabbbcabbbbbc" ; 
            preg_match($mode,$str,$content); 
            echo $content[0]//输出:abcabbbcabbbbbc; 

            //如果$mode="/a.*c/";变成$mode="/a.*c/U"; 
             // 则只匹配最近一个字符串,输出:abc; 

    //修正符:e 配合函数preg_replace()使用, 
           可以把匹配来的字符串当作正则表达式执行;  

 

m的作用详解:
示例代码

<html>
<body>
<textarea id="aid" cols="55" rows="10"></textarea> <input type="button" onClick="fun()" value="check" />
<div id="myid">    
</div>
</html> 
<script>
/*
测试数据:
bd76 
dfsdf 
sdfsdfs 
dffs 
b76dsf 
sdfsdf
*/

function fun(){
    var reg = /^b./gm; //匹配到两个结果{bd,b7}
    //var reg = /^b./g;//匹配得到一个结果{bd}
    //var reg = /^b./m;//匹配得到一个结果{bd}
    var str = document.all("aid").value;
    var rs=str.match(reg); 
    for(var i=0; i<rs.length; i++){
        document.all("myid").innerHTML += "第"+i+"个元素:"+rs[i] + "<br/>";
    }
}
</script>


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3