當前位置: > 學(xué)習>正文
php preg_match_all正則表達式中常用的模式修正符Uis。
正則表達式中常用的模式修正符有i、g、m、s、U、x、a、D、e 等。
它們之間可以組合搭配使用。
i 不區分(ignore)大小寫(xiě); 例如: /abc/i 可以匹配 abc、aBC、Abc
g 全局(global)匹配 如果不帶g,正則過(guò)程中字符串從左到右匹配,找到第一個(gè)符合條件的即匹配成功,返回 如果帶g,則字符串從左到右,找到每個(gè)符合條件的都記錄下來(lái),知道字符串結尾位置 例如: 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并且有開(kāi)始^或結束$符的情況下,和g一起使用實(shí)現全局匹配, 因為存在換行時(shí)默認會(huì )把換行符作為一個(gè)字符任務(wù)匹配字符串是個(gè)單行, g只匹配第一行,添加m之后實(shí)現多行,每個(gè)換行符之后就是開(kāi)始 var str = "abcggab\nabcoab"; var preg1 = /^abc/gm; str.match(preg1) // 結果為:["abc", "abc"] var preg2 = /ab$/gm; str.match(preg2) // 結果為:["ab", "ab"]
s 特殊字符圓點(diǎn) . 中包含換行符 默認的圓點(diǎn) . 是 匹配除換行符 \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 只匹配最近的一個(gè)字符串;不重復匹配; $mode="/a(.*?)c/"; $preg="/a.*c/U";//這兩個(gè)正則返回相同的值 $str="abcabbbcabbbbbc" ; preg_match($mode,$str,$content); echo $content[0];//abc preg_match($preg,$str,$content); echo $content[0];//abc //修正符:x 將模式中的空白忽略; //修正符:A 強制從目標字符串開(kāi)頭匹配; //修正符:D 如果使用$限制結尾字符,則不允許結尾有換行; //修正符:e 配合函數preg_replace()使用, 可以把匹配來(lái)的字符串當作正則表達式執行;
版權聲明: 本站僅提供信息存儲空間服務(wù),旨在傳遞更多信息,不擁有所有權,不承擔相關(guān)法律責任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責。如因作品內容、版權和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。