關(guān)于preg_replace函數(shù)的問題講解
更新時(shí)間:2007年03月20日 00:00:00 作者:
請(qǐng)問下那此句語句的作用。給我解釋一下其中的“?”,“e","i","s"符號(hào)分別是什么意思,和它們起到了什么作用。還有就是除了"/eis”外還有其他什么模式了嗎?
如果有相關(guān)的學(xué)習(xí)資料可以給我嗎?謝謝,各位的幫助!謝謝。
$post=preg_replace("/\[html\](.+?)\[\/html\]/eis","htmlcode('\\1')",$post);
修飾符:
在正則表達(dá)式里面的修飾符可以改變正則的很多特性,使得正則表達(dá)式更加適合你的需要(注意:修飾符對(duì)于大小寫是敏感的,這意味著"e"并不等于"E")。正則表達(dá)式里面的修飾符如下:
i :如果在修飾符中加上"i",則正則將會(huì)取消大小寫敏感性,即"a"和"A" 是一樣的。
m:默認(rèn)的正則開始"^"和結(jié)束"$"只是對(duì)于正則字符串如果在修飾符中加上"m",那么開始和結(jié)束將會(huì)指字符串的每一行:每一行的開頭就是"^",結(jié)尾就是"$"。
s:如果在修飾符中加入"s",那么默認(rèn)的"."代表除了換行符以外的任何字符將會(huì)變成任意字符,也就是包括換行符!
x:如果加上該修飾符,表達(dá)式中的空白字符將會(huì)被忽略,除非它已經(jīng)被轉(zhuǎn)義。
e:本修飾符僅僅對(duì)于replacement有用,代表在replacement中作為PHP代碼。
A:如果使用這個(gè)修飾符,那么表達(dá)式必須是匹配的字符串中的開頭部分。比如說"/a/A"匹配"abcd"。
E:與"m"相反,如果使用這個(gè)修飾符,那么"$"將匹配絕對(duì)字符串的結(jié)尾,而不是換行符前面,默認(rèn)就打開了這個(gè)模式。
U:和問號(hào)的作用差不多,用于設(shè)置"貪婪模式"。
?表單非貪婪匹配,即盡可能少的匹配
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]中間的內(nèi)容
e表示可以使用函數(shù)來處理向后引后的子匹配部分
i表未不區(qū)分大小寫,
s表示.也匹配換行符
假設(shè)有如下字符串
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
使用/\[html\](.+?)\[\/html\]/和使用[html\](.+)\[\/html\]/U的結(jié)果是一樣的,
都是代表非貪婪,只不過一個(gè)用了修正符,一個(gè)用了語法。
結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]和
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
兩個(gè)匹配,
而/\[html\](.+)\[\/html\]/的結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]一個(gè)匹配
因?yàn)檎麄€(gè)字符也是符合以"
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]"結(jié)尾,只不過是獲得更多的字符串
如果有相關(guān)的學(xué)習(xí)資料可以給我嗎?謝謝,各位的幫助!謝謝。
$post=preg_replace("/\[html\](.+?)\[\/html\]/eis","htmlcode('\\1')",$post);
修飾符:
在正則表達(dá)式里面的修飾符可以改變正則的很多特性,使得正則表達(dá)式更加適合你的需要(注意:修飾符對(duì)于大小寫是敏感的,這意味著"e"并不等于"E")。正則表達(dá)式里面的修飾符如下:
i :如果在修飾符中加上"i",則正則將會(huì)取消大小寫敏感性,即"a"和"A" 是一樣的。
m:默認(rèn)的正則開始"^"和結(jié)束"$"只是對(duì)于正則字符串如果在修飾符中加上"m",那么開始和結(jié)束將會(huì)指字符串的每一行:每一行的開頭就是"^",結(jié)尾就是"$"。
s:如果在修飾符中加入"s",那么默認(rèn)的"."代表除了換行符以外的任何字符將會(huì)變成任意字符,也就是包括換行符!
x:如果加上該修飾符,表達(dá)式中的空白字符將會(huì)被忽略,除非它已經(jīng)被轉(zhuǎn)義。
e:本修飾符僅僅對(duì)于replacement有用,代表在replacement中作為PHP代碼。
A:如果使用這個(gè)修飾符,那么表達(dá)式必須是匹配的字符串中的開頭部分。比如說"/a/A"匹配"abcd"。
E:與"m"相反,如果使用這個(gè)修飾符,那么"$"將匹配絕對(duì)字符串的結(jié)尾,而不是換行符前面,默認(rèn)就打開了這個(gè)模式。
U:和問號(hào)的作用差不多,用于設(shè)置"貪婪模式"。
?表單非貪婪匹配,即盡可能少的匹配
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
e表示可以使用函數(shù)來處理向后引后的子匹配部分
i表未不區(qū)分大小寫,
s表示.也匹配換行符
假設(shè)有如下字符串
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
使用/\[html\](.+?)\[\/html\]/和使用[html\](.+)\[\/html\]/U的結(jié)果是一樣的,
都是代表非貪婪,只不過一個(gè)用了修正符,一個(gè)用了語法。
結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
兩個(gè)匹配,
而/\[html\](.+)\[\/html\]/的結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
因?yàn)檎麄€(gè)字符也是符合以"
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
相關(guān)文章
使用正則表達(dá)式驗(yàn)證登錄頁面輸入是否符合要求
這篇文章主要介紹了使用正則表達(dá)式驗(yàn)證登錄頁面輸入是否符合要求的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-09-09WEB開發(fā)時(shí)常用的正則表達(dá)式(PHP和Javascript)
這篇文章主要介紹了WEB開發(fā)中最常用最實(shí)用的正則表達(dá)式及其用法,需要的朋友可以參考下2015-10-10JavaScript正則表達(dá)式迷你書之貪婪模式-學(xué)習(xí)筆記
這篇文章主要介紹了JavaScript正則表達(dá)式迷你書之貪婪模式-學(xué)習(xí)筆記,需要的朋友可以參考下2020-02-02javascript正則表達(dá)式和字符串RegExp and String(一)
這篇文章主要介紹了javascript正則表達(dá)式和字符串RegExp and String(一)的相關(guān)資料,需要的朋友可以參考下2015-10-10asp提取內(nèi)容中的手機(jī)號(hào)碼,qq,網(wǎng)址的正則代碼
有時(shí)候需要獲取頁面源代碼中的手機(jī)號(hào)碼,qq,網(wǎng)址,一般情況下都是用正則表達(dá)式實(shí)現(xiàn)的,需要的朋友可以參考下。2011-09-09正則表達(dá)式、分組、子匹配(子模式)、非捕獲子匹配(子模式)
前面我們知道正則表達(dá)式有很多元字符表示匹配次數(shù)(量詞),都是可以重復(fù)匹配前面出現(xiàn)的單個(gè)字符次數(shù),需要的朋友可以參考下2016-06-06js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
今天小編就為大家分享一篇js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07