正則表達式修飾符 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)行匹配
若存在換行\n並且有開始^或結束$符的情況下,和g一起使用實現全局匹配,
因為存在換行時默認會把換行符作為一個字符任務匹配字符串是個單行,
g只匹配第一行,添加m之后實現多行,每個換行符之后就是開始
var str = "abcggab\nabcoab";
var preg1 = /^abc/gm;  str.match(preg1)  // 結果為:["abc", "abc"]
var preg2 = /ab$/gm;   str.match(preg2)  // 結果為:["ab", "ab"]


s 特殊字符圓點 . 中包含換行符
默認的圓點 . 是 匹配除換行符 \n 之外的任何單字符,加上s之后, . 中包含換行符
$str = "abggab\nacbs";
$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()使用, 可以把匹配來的字符串當作正則表達式執行;  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM