欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PHP中的正則表達式有哪些-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)PHP中的正則表達式有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)建站堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)建站是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、HTML5建站、網(wǎng)站制作、成都品牌網(wǎng)站建設(shè)、小程序定制開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

PHP中對于正則處理文本提供了兩種方式,一種是PCRE方式(PCRE庫是一個實現(xiàn)了與perl 5在語法和語義上略有差異(詳見下文)的正則表達式模式匹配功能的函數(shù)集. 當(dāng)前的實現(xiàn)對應(yīng)于perl 5.005.);另一個是POSIX方式。

PCRE 函數(shù)庫中的函數(shù)使用的模式語法非常類似perl. 表達式必須用分隔符閉合, 比如一個正斜杠(/). 分隔符可以使任意非字母數(shù)字, 除反斜杠(\)和空字節(jié)之外的非空白ascii字符. 如果分隔符 在表達式中使用, 需要使用反斜線進行轉(zhuǎn)義. 自php 4.0.4開始, 可以使用perl樣式的(), {}, []以及<>作為分隔符. 更詳細的解釋參見模式語法.

結(jié)束分隔符后面可以緊跟模式修飾符來影響匹配效果. 參見模式修飾符.
PCRE的模式修正符
i (PCRE_CASELESS)

如果設(shè)定此修正符,模式中的字符將同時匹配大小寫字母。
s(PCRE_DOTALL)
如果設(shè)定了此修正符,模式中的圓點元字符(.)匹配所有的字符,包括換行符。沒有此設(shè)定的話,則不包括換行符。這和 Perl 的 /s 修正符是等效的。排除字符類例如 [^a] 總是匹配換行符的,無論是否設(shè)定了此修正符。
m(PCRE_MULTILINE)
默認情況下,PCRE 將目標(biāo)字符串作為單一的一“行”字符所組成的(甚至其中包含有換行符也是如此)。“行起始”元字符(^)僅僅匹配字符串的起始,“行結(jié)束”元字符($)僅僅匹配字符串的結(jié)束,或者最后一個字符是換行符時其前面(除非設(shè)定了 D 修正符)。這和 Perl 是一樣的。當(dāng)設(shè)定了此修正符,“行起始”和“行結(jié)束”除了匹配整個字符串開頭和結(jié)束外,還分別匹配其中的換行符的之后和之前。這和 Perl 的 /m 修正符是等效的。如果目標(biāo)字符串中沒有“\n”字符或者模式中沒有 ^ 或 $,則設(shè)定此修正符沒有任何效果。
x (PCRE_EXTENDED)
如果設(shè)置了這個修飾符, 模式中的沒有經(jīng)過轉(zhuǎn)義的或不在字符類中的空白數(shù)據(jù)字符總會被忽略, 并且位于一個未轉(zhuǎn)義的字符類外部的#字符和下一個換行符之間的字符也被忽略. 這個修飾符 等同于perl中的/x修飾符, 使被編譯模式中可以包含注釋. 注意: 這僅用于數(shù)據(jù)字符. 空白字符 還是不能在模式的特殊字符序列中出現(xiàn), 比如序列(?(引入了一個條件子組(譯注: 這種語法定義的 特殊字符序列中如果出現(xiàn)空白字符會導(dǎo)致編譯錯誤. 比如( ?(就會導(dǎo)致錯誤.).
e (PREG_REPLACE_EVAL)
如果這個修飾符設(shè)置了, preg_replace()在進行了對替換字符串的 后向引用替換之后, 將替換后的字符串作為php代碼評估之行(eval函數(shù)方式), 并使用之行結(jié)果 作為實際參與替換的字符串. 單引號, 雙引號, 反斜線(\)和NULL字符在 后向引用替換時會被用反斜線轉(zhuǎn)義.
僅preg_replace()使用此修飾符, 其他PCRE函數(shù)忽略此修飾符.
A (PCRE_ANCHORED)
如果設(shè)置了這個修飾符, 模式被強制為"錨定"模式, 也就是說約束匹配使其僅從 目標(biāo)字符串的開始位置搜索. 這個效果同樣可以使用適當(dāng)?shù)哪J綐?gòu)造出來, 并且 這也是perl種實現(xiàn)這種模式的途徑.
D (PCRE_DOLLAR_ENDONLY)
如果這個修飾符被設(shè)置, 模式中的元字符美元符號僅僅匹配目標(biāo)字符串的末尾. 如果這個修飾符 沒有設(shè)置, 當(dāng)字符串以一個換行符結(jié)尾時, 美元符號還會匹配該換行符(但不會匹配之前的任何換行符). 如果設(shè)置了修飾符m, 這個修飾符被忽略. 在perl中沒有與此修飾符等同的修飾符.
S
當(dāng)一個模式需要多次使用的時候, 為了得到匹配速度的提升, 值得花費一些時間 對其進行一些額外的分析. 如果設(shè)置了這個修飾符, 這個額外的分析就會執(zhí)行. 當(dāng)前, 這種對一個模式的分析僅僅適用于非錨定模式的匹配(即沒有單獨的固定開始字符).
U (PCRE_UNGREEDY)
這個修飾符逆轉(zhuǎn)了量詞的"貪婪"模式. 使量詞默認為非貪婪的, 通過量詞后緊跟? 的方式可以使其成為貪婪的. 這和perl是不兼容的. 它同樣可以使用 模式內(nèi)修飾符設(shè)置 (?U)進行設(shè)置, 或者在量詞后以問號標(biāo)記其非貪婪(比如.*?).在非貪婪模式, 通常不能匹配超過 pcre.backtrack_limit 的字符.
X (PCRE_EXTRA)
這個修飾符打開了PCRE與perl不兼容的附件功能. 模式中的任意反斜線后就ingen一個 沒有特殊含義的字符都會導(dǎo)致一個錯誤, 以此保留這些字符以保證向后兼容性. 默認 情況下, 在perl中, 反斜線緊跟一個沒有特殊含義的字符被認為是該字符的原文. 當(dāng)前沒有其他特性由這個修飾符控制.
J (PCRE_INFO_JCHANGED)
內(nèi)部選項設(shè)置(?J)修改本地的PCRE_DUPNAMES選項. 允許子組重名. (譯注:只能通過內(nèi)部選項設(shè)置, 外部的/J設(shè)置會產(chǎn)生錯誤.)
u (PCRE8)
此修正符打開一個與perl不兼容的附加功能. 模式字符串被認為是utf-8的. 這個修飾符 從unix版php 4.1.0或更高, win32版php 4.2.3開始可用. php 4.3.5開始檢查模式的utf-8合法性. This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32. UTF-8 validity of the pattern is checked since PHP 4.3.5.

關(guān)于PHP中的正則表達式有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享文章:PHP中的正則表達式有哪些-創(chuàng)新互聯(lián)
標(biāo)題URL:http://www.chinadenli.net/article22/igijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)搜索引擎優(yōu)化App開發(fā)網(wǎng)站改版網(wǎng)站導(dǎo)航自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)