老生常談php 正則中的i,m,s,x,e分別表示什么
i
如果設(shè)定此修正符,模式中的字符將同時(shí)匹配大小寫字母。
m
當(dāng)設(shè)定了此修正符,“行起始”和“行結(jié)束”除了匹配整個(gè)字符串開頭和結(jié)束外,還分別匹配其中的換行符的之后和之前。
s
如果設(shè)定了此修正符,模式中的圓點(diǎn)元字符(.)匹配所有的字符,包括換行符。沒(méi)有此設(shè)定的話,則不包括換行符。
x
如果設(shè)定了此修正符,模式中的空白字符除了被轉(zhuǎn)義的或在字符類中的以外完全被忽略,在未轉(zhuǎn)義的字符類之外的 #以及下一個(gè)換行符之間的所有字符,包括兩頭,也都被忽略。
e
如果設(shè)定了此修正符,preg_replace() 在替換字符串中對(duì)逆向引用作正常的替換,
?在 . + 和 * 之后 表示非貪婪匹配: *、+和?限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字,只有在它們的后面加上一個(gè)?就可以實(shí)現(xiàn)非貪婪或最小匹配。
例如:
<?php $string = "上飛機(jī)離開我<img border='0' alt='' src='/uploadfile/2009/0921/20090921091612567.jpg' border='0' />sdfsdf"; $su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\'](.+?)[\"|\'] /", $string,$match); // 匹配src=的內(nèi)容 print_r($match[1]); // 輸出 /uploadfile/2009/0921/20090921091612567.jpg $su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\'](.+)[\"|\'] /", $string,$match); print_r($match[1]); // 輸出 /uploadfile/2009/0921/20090921091612567.jpg' border=' ?>
例子:(?i):
(?i)在PHP中的意思是內(nèi)部修正符,i指不區(qū)分大小寫
其它的修正符還有x,m,s,U等。和我們使用的模式修正符是一樣的。
區(qū)別在于它是在模式內(nèi)部使用的。僅作用于(?i)所在的子模式內(nèi)
如
ccc(a(?i))bcd 匹配 cccabcd和cccAbcd
而a(?i)bc則和abc加上\i修正符是一樣的因?yàn)??i)作用于整個(gè)模式
后向引用
對(duì)一個(gè)正則表達(dá)式模式或部分模式兩邊添加圓括號(hào)將導(dǎo)致相關(guān)匹配存儲(chǔ)到一個(gè)臨時(shí)緩沖區(qū)中,所捕獲的每個(gè)子匹配都按照在正則表達(dá)式模式中從左至右所遇到的內(nèi)容存儲(chǔ)。存儲(chǔ)子匹配的緩沖區(qū)編號(hào)從 1 開始,連續(xù)編號(hào)直至最大 99 個(gè)子表達(dá)式。每個(gè)緩沖區(qū)都可以使用 '\n' 訪問(wèn),其中 n 為一個(gè)標(biāo)識(shí)特定緩沖區(qū)的一位或兩位十進(jìn)制數(shù)。
可以使用非捕獲元字符 '?:', '?=', or '?!' 來(lái)忽略對(duì)相關(guān)匹配的保存。
以上這篇老生常談php 正則中的i,m,s,x,e分別表示什么就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用ucenter實(shí)現(xiàn)多站點(diǎn)同步登錄的講解
今天小編就為大家分享一篇關(guān)于使用ucenter實(shí)現(xiàn)多站點(diǎn)同步登錄的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03php采用ajax數(shù)據(jù)提交post與post常見(jiàn)方法總結(jié)
這篇文章主要介紹了php采用ajax數(shù)據(jù)提交post與post常見(jiàn)方法,實(shí)例總結(jié)了json格式傳遞數(shù)據(jù)的優(yōu)點(diǎn)并總結(jié)了四種常見(jiàn)的POST提交數(shù)據(jù)方式,需要的朋友可以參考下2014-11-11PHP基于PDO調(diào)用sqlserver存儲(chǔ)過(guò)程通用方法【基于Yii框架】
這篇文章主要介紹了PHP基于PDO調(diào)用sqlserver存儲(chǔ)過(guò)程通用方法,結(jié)合實(shí)例形式分析了基于Yii框架采用pdo調(diào)用sqlserver存儲(chǔ)過(guò)程的相關(guān)操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-10-10PHP+MySQL實(shí)現(xiàn)消息隊(duì)列的方法分析
這篇文章主要介紹了PHP+MySQL實(shí)現(xiàn)消息隊(duì)列的方法,結(jié)合實(shí)例形式分析了php+mysql構(gòu)建消息隊(duì)列并使用定時(shí)器間歇發(fā)送信息相關(guān)操作技巧,需要的朋友可以參考下2018-05-05php實(shí)現(xiàn)每天自動(dòng)變換隨機(jī)問(wèn)候語(yǔ)的方法
這篇文章主要介紹了php實(shí)現(xiàn)每天自動(dòng)變換隨機(jī)問(wèn)候語(yǔ)的方法,涉及時(shí)間與數(shù)組的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05php中$_POST與php://input的區(qū)別實(shí)例分析
這篇文章主要介紹了php中$_POST與php://input的區(qū)別,實(shí)例分析了$_POST與php://input的功能、使用技巧與用法區(qū)別,需要的朋友可以參考下2015-01-01php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能示例
這篇文章主要介紹了php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了php結(jié)合jQuery ajax實(shí)時(shí)刷新讀取顯示數(shù)據(jù)庫(kù)數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下2019-09-09php簡(jiǎn)單瀏覽目錄內(nèi)容的實(shí)現(xiàn)代碼
本篇文章是對(duì)php簡(jiǎn)單瀏覽目錄內(nèi)容的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06