關(guān)于preg_replace函數(shù)的問(wèn)題講解
更新時(shí)間:2007年03月20日 00:00:00 作者:
請(qǐng)問(wèn)下那此句語(yǔ)句的作用。給我解釋一下其中的“?”,“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á)式必須是匹配的字符串中的開頭部分。比如說(shuō)"/a/A"匹配"abcd"。
E:與"m"相反,如果使用這個(gè)修飾符,那么"$"將匹配絕對(duì)字符串的結(jié)尾,而不是換行符前面,默認(rèn)就打開了這個(gè)模式。
U:和問(wèn)號(hào)的作用差不多,用于設(shè)置"貪婪模式"。
?表單非貪婪匹配,即盡可能少的匹配
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]中間的內(nèi)容
e表示可以使用函數(shù)來(lái)處理向后引后的子匹配部分
i表未不區(qū)分大小寫,
s表示.也匹配換行符
假設(shè)有如下字符串
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
使用/\[html\](.+?)\[\/html\]/和使用[html\](.+)\[\/html\]/U的結(jié)果是一樣的,
都是代表非貪婪,只不過(guò)一個(gè)用了修正符,一個(gè)用了語(yǔ)法。
結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]和
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
兩個(gè)匹配,
而/\[html\](.+)\[\/html\]/的結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]一個(gè)匹配
因?yàn)檎麄€(gè)字符也是符合以"
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]"結(jié)尾,只不過(guò)是獲得更多的字符串
如果有相關(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á)式必須是匹配的字符串中的開頭部分。比如說(shuō)"/a/A"匹配"abcd"。
E:與"m"相反,如果使用這個(gè)修飾符,那么"$"將匹配絕對(duì)字符串的結(jié)尾,而不是換行符前面,默認(rèn)就打開了這個(gè)模式。
U:和問(wèn)號(hào)的作用差不多,用于設(shè)置"貪婪模式"。
?表單非貪婪匹配,即盡可能少的匹配
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
e表示可以使用函數(shù)來(lái)處理向后引后的子匹配部分
i表未不區(qū)分大小寫,
s表示.也匹配換行符
假設(shè)有如下字符串
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
使用/\[html\](.+?)\[\/html\]/和使用[html\](.+)\[\/html\]/U的結(jié)果是一樣的,
都是代表非貪婪,只不過(guò)一個(gè)用了修正符,一個(gè)用了語(yǔ)法。
結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
兩個(gè)匹配,
而/\[html\](.+)\[\/html\]/的結(jié)果是
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
因?yàn)檎麄€(gè)字符也是符合以"
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
相關(guān)文章
javascript正則表達(dá)式學(xué)習(xí)之位置匹配
正則表達(dá)式是匹配模式,要么是匹配字符,要么匹配位置。在開發(fā)中用到位置匹配的機(jī)會(huì)很少,但是小編也給大家介紹下關(guān)于正則表達(dá)式位置匹配的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2019-04-04
正則表達(dá)式預(yù)查的詳細(xì)解釋與應(yīng)用實(shí)例
這幾天在用正則表達(dá)式做一個(gè)小程序,需要替換內(nèi)容中的某些特殊字符串。這些字符串的出現(xiàn)是有規(guī)律的,那就是在它左面總會(huì)特定的內(nèi)容出現(xiàn),右面卻沒有,下面這篇文章主要給大家介紹了關(guān)于正則表達(dá)式預(yù)查的詳細(xì)解釋與應(yīng)用實(shí)例,需要的朋友可以參考下2022-09-09
[js]用JAVASCRIPT正則表達(dá)式限制文本字節(jié)數(shù)的代碼
[js]用JAVASCRIPT正則表達(dá)式限制文本字節(jié)數(shù)的代碼...2007-11-11
Python 正則表達(dá)式匹配數(shù)字及字符串中的純數(shù)字
這篇文章主要介紹了Python 正則表達(dá)式匹配數(shù)字及使用正則表達(dá)式找出字符串中的純數(shù)字,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08

