請問下那此句語句的作用。給我解釋一下其中的“?”,“e”,”i”,”s”符號分別是什么意思,和它們起到了什么作用。還有就是除了”/eis”外還有其他什么模式了嗎?
如果有相關的學習資料可以給我嗎?謝謝,各位的幫助!謝謝。
$post=preg_replace(“/[html](.+?)[/html]/eis”,”htmlcode(‘\1’)”,$post);
修飾符:
在正則表達式里面的修飾符可以改變正則的很多特性,使得正則表達式更加適合你的需要(注意:修飾符對于大小寫是敏感的,這意味著”e”并不等于”E”)。正則表達式里面的修飾符如下:
i :如果在修飾符中加上”i”,則正則將會取消大小寫敏感性,即”a”和”A” 是一樣的。
m:默認的正則開始”^”和結束”$”只是對于正則字符串如果在修飾符中加上”m”,那么開始和結束將會指字符串的每一行:每一行的開頭就是”^”,結尾就是”$”。
s:如果在修飾符中加入”s”,那么默認的”.”代表除了換行符以外的任何字符將會變成任意字符,也就是包括換行符!
x:如果加上該修飾符,表達式中的空白字符將會被忽略,除非它已經被轉義。
e:本修飾符僅僅對于replacement有用,代表在replacement中作為PHP代碼。
A:如果使用這個修飾符,那么表達式必須是匹配的字符串中的開頭部分。比如說”/a/A”匹配”abcd”。
E:與”m”相反,如果使用這個修飾符,那么”$”將匹配絕對字符串的結尾,而不是換行符前面,默認就打開了這個模式。
U:和問號的作用差不多,用于設置”貪婪模式”。
?表單非貪婪匹配,即盡可能少的匹配
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
中間的內容
e表示可以使用函數(shù)來處理向后引后的子匹配部分
i表未不區(qū)分大小寫,
s表示.也匹配換行符
假設有如下字符串
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
使用/[html](.+?)[/html]/和使用[html](.+)[/html]/U的結果是一樣的,
都是代表非貪婪,只不過一個用了修正符,一個用了語法。
結果是
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
和
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
兩個匹配,
而/[html](.+)[/html]/的結果是
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
一個匹配
因為整個字符也是符合以”
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
“結尾,只不過是獲得更多的字符串