成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP學(xué)習(xí)筆記-----正則表達(dá)式

正則表達(dá)式的語法規(guī)則

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比道里網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式道里網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋道里地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

正則表達(dá)式描述了一種字符串匹配的模式,通過這個模式在特定的函數(shù)中對字符串進(jìn)行匹配、查找、替換及分割等操作。

三個組成部分:

         原子

         元字符

         模式修正符

以及         定界符

1 定界符

不僅局限”/“。除了字母、數(shù)字和反斜線”\“以外的任何字符都可以作為定界符號。

2 原子

         1       普通字符作為原子

                   a~z  A~Z 0~9

         2  一些特殊字符和元字符作為原子

                   有特殊意義的符號,需使用轉(zhuǎn)義字符”\“

         3   一些非打印字符作為原子

                   \cx   \f  \n   \r   \t  \w

         4   使用”通用字符類型“作為原子

                  \d 匹配任意一個十進(jìn)制數(shù)字,等價于[0-9]

                   \D匹配任意一個除十進(jìn)制字以外的字符,等價于[^0-9]

                   \s匹配任意一個空白字符,等價于[\f\n\r\t\v]

                   \S匹配除空白字符以外任意一個字符,等價于[^\f\n\r\t\v]

                   \w匹配任意一個數(shù)字、字母或下劃線,等價于[0-9a-ZA-Z]

                   \W匹配除數(shù)字、字母或下劃線以外的任意一個字符,等價于[^0-9a-zA-Z]

         5     自定義原子表([])作為原子

3 元字符

         限定符

                  *   匹配0次、1次或多次其前的原子

                  +   匹配1次或多次其前的原子

                  ?   匹配0次或1此前的原子

{n}    表示其前面的原子恰好出現(xiàn)n次

                   {n,}   表示其前面的原子出現(xiàn)不少于n次

                   {n,m}表示其前面的原子至少出現(xiàn)n次,最多出現(xiàn)m次

 

句號

                  .       匹配除了換行符外的任意一個字符

 

模式選擇符

                  |    匹配兩個或多個分支選擇

                 

邊界限制

                  ^或\A匹配輸入字符串的開始位置

                  $或\Z匹配輸入字符串的結(jié)束位置

                  \b     匹配單詞的邊界

                  \B     匹配除單詞邊界以外的部分

                  []       匹配方括號中指定的任意一個原子

                  [^]    匹配除方括號中原子以外的任意一個字符

 

         模式單元

                  ( )      匹配其整體為一個原子,即模式單元。

        

         后向引用

                   模式加元字符括號后,結(jié)果被存儲到緩沖區(qū)中,可以使用“\n”(n為第n個括號)引用

   

模式修正符

         在正則表達(dá)式定界符之外使用。

         i        在和模式進(jìn)行匹配時不區(qū)分大小寫

         m      將字符串視為多行(默認(rèn)情況,不匹配換行符)

         s       模式中的圓點(diǎn)元字符匹配所有字符,包括換行符。將字符串視為單行,換行符作為普通字符看待。(可以匹配換行符)

         x       模式中的空白忽略不計(jì),除非它已經(jīng)被轉(zhuǎn)義

         e       只用在preg_replace()函數(shù)中,在替換字符串中對逆向引用做正常的替換,將其作為PHP代碼求值,并用其結(jié)果來替換所搜索的字符串

         U      反轉(zhuǎn)了匹配數(shù)量的值使其不是默認(rèn)的重復(fù),而變成在后面跟上“?”才變得重復(fù)。(非貪婪模式,同.*?)

         D      模式中的美元元字符僅匹配目標(biāo)字符串的結(jié)尾。(沒有此選項(xiàng),如果最后一個字符是換行符,美元符號會匹配此字符之前)

 

與Perl兼容的正則表達(dá)式函數(shù)

一匹配與查找

1          preg_match()

通常用于表單驗(yàn)證??梢园粗付ǖ恼齽t表達(dá)式模式,對字符串進(jìn)行搜索和匹配一次。

         @pattern提供用戶按正則表達(dá)式語法編寫的模式

         @subject 字符串

         @matches保存與第一個參數(shù)中的子模式的各個部分的匹配結(jié)果。Matches[0]保存了與正則表達(dá)式pattern匹配的整體內(nèi)容。Matches其他元素是正則表達(dá)式小括號內(nèi)按順序依次的內(nèi)容。

         @return返回0或1,匹配結(jié)果數(shù)

Intpreg_match(string pattern,string subject[,array match])

 

2          preg_match_all()

一直搜索到指定字符串的結(jié)尾,可以獲得所有匹配到的結(jié)果。

@pattern

@subjet

@matches所有匹配結(jié)果

@flags 

         PREG_PATTERN_ORDER: 對結(jié)果排序,$matches[0]為全部模式匹配的數(shù)組,$matches[1]為第一個括號中的子模式所匹配的字符串組成的數(shù)組。

         PERG_SET_ORDER:對結(jié)果排序,使$matches[0]為第一組匹配項(xiàng)的數(shù)組,$matches[1]位第二組的匹配項(xiàng)數(shù)組。

@return 返回整個模式匹配的次數(shù),如果出錯則返回FALSE

intpreg_match_all(string pattern,string subject,array matches[, int flags])

 

3          preg_grep()

@pattern 正則表達(dá)式

@input 數(shù)組

@return 返回一個數(shù)組,包括了第二個參數(shù)input數(shù)組中與給定的第一個參數(shù)pattern模式相匹配的單元。(對input中的每個元素,只進(jìn)行一次匹配)

arraypreg_grep(string pattern,array input)

 

4          strstr()  strops() strrpos()  substr()

 

二、字符串的替換

         1       preg_replace()

         @pattern                模式匹配項(xiàng)

         @replacement         替換內(nèi)容

         @subject                   原字符串

         @limit                         替換個數(shù)(值為-1,則所有都會匹配)

         mixedpreg_replace( mixed pattern,mixed replacement ,mixe subject [,int limit])

注:與模式修正符e的搭配使用

         2       str_replace()

三、字符串的分割和拼接

         1       preg_split()

         用途:返回一個字符串?dāng)?shù)組,數(shù)組中元素包含通過第二個參數(shù)subject中的字符串,經(jīng)第一個參數(shù)的正則表達(dá)式pattern,作為匹配的邊界所分割的子串。

         @pattern                模式匹配項(xiàng)

         @subject                 字符串

         @limit                         替換個數(shù)

         @flags                       

                   PREG_SPLIT_NO_EMPTY:如果設(shè)定了本標(biāo)記,則preg_split()只返回非空部分

                   PREG_SPLIT_DELIM_CAPTURE:如果設(shè)定了本標(biāo)記,定界符模式中的括號表達(dá)式也會被捕獲并返回。

                   PREG_SPLIT_OFFSET_CAPTURE:如果設(shè)定本標(biāo)記,對每個出現(xiàn)的匹配結(jié)果也同時返回其附屬的字符串偏移量。

         arraypreg_split( string pattern,string subject[,int limit [,flags]])

         2       explode()

         3       implode()


文章名稱:PHP學(xué)習(xí)筆記-----正則表達(dá)式
分享鏈接:http://jinyejixie.com/article4/psieoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、商城網(wǎng)站、網(wǎng)站制作定制開發(fā)、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)

廣告

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

營銷型網(wǎng)站建設(shè)
双江| 西华县| 深州市| 鄂尔多斯市| 凤庆县| 津南区| 柳河县| 扎鲁特旗| 岢岚县| 乐平市| 武平县| 平和县| 哈尔滨市| 大兴区| 清水县| 丹江口市| 扶余县| 长治县| 盐津县| 分宜县| 萨嘎县| 三门县| 华池县| 奈曼旗| 十堰市| 化隆| 中牟县| 景宁| 房产| 邵武市| 高青县| 宜章县| 迭部县| 丰宁| 社会| 屯留县| 沭阳县| 伊金霍洛旗| 抚州市| 时尚| 顺平县|