php基礎教學——14正則表達式ppt課件_第1頁
php基礎教學——14正則表達式ppt課件_第2頁
php基礎教學——14正則表達式ppt課件_第3頁
php基礎教學——14正則表達式ppt課件_第4頁
php基礎教學——14正則表達式ppt課件_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、PHP正則表達式后盾網(wǎng) 2019-2019 v2.0 后盾網(wǎng) 人人做后盾houdunwang后盾網(wǎng) 人人做后盾正則表達式是什么?u正則表達式通常被用來 檢索或替換 符合某個模式的文本內(nèi)容u許多程序設計語言都支持利用正則表達式進行字符串操作。例如:JavaScript、PHP、ASP、JAVA、Perl、C#、.NET、ColdFusion、Python、Visual Basic、MySQL、Linux、VI編輯器等等都支持正則表達式u在PHP中支持Perl兼容的正則表達式函數(shù)PCRE模式,同時支持POSIX正則表達式。Perl兼容的正則表達式效率更高,在PHP 5.3.0中POSIX正則表達式

2、擴展被廢棄,所以我們只需要學習Perl正則即可u簡單來說正則表達式就是完成字符串的增、刪、改、查后盾網(wǎng) 人人做后盾定界符-正則表達式語句需要由分隔符定界符閉合包裹,分隔符可以使任意非字母數(shù)字, 非反斜線, 非空白字符-經(jīng)常使用的分隔符是正斜線 / , hash符號 # 以及取反符號 下面的例子都是使用合法分隔符的模式-建議使用 / 做為定界符-例如:-$preg = /houdunwang/;-$c = preg_match($preg, 后盾網(wǎng)址houdunwang);后盾網(wǎng) 人人做后盾元字符原子)u元字符是正則表達式中的最小元素,只代表 單一一個字符u系統(tǒng)提供的元字符:ud匹配任意一個數(shù)字

3、 0-9uD與除了數(shù)字以外的任何一個字符匹配 0-9uw 與任意一個英文字母,數(shù)字或下劃線匹配 a-zA-Z_uW除了字母,數(shù)字或下劃線外與任何一個字符匹配a-zA-Z_ us 與任意一個空白字符匹配nfrtv u f換頁字符n換行字符r回車字符ut制表符 v垂直制表符 uS 與除了空白符外任意一個字符匹配nfrtv 后盾網(wǎng) 人人做后盾字符轉(zhuǎn)義u假如有這樣的場景,我們想通過正則查找 * 符號,但是 * 在正則中有特殊的意義,如果寫成 /*/ 這會找到任意除換行符外的字符,所以我們要寫成 /*/ ,也就是把 * 號進行轉(zhuǎn)義處理,恢復他本來的意思后盾網(wǎng) 人人做后盾元字符表原子表)u如果想在一組字符

4、中匹配某個元字符,在正則表達式中可以通過元字符表方式來完成,就是放到 . 方括號中u只匹配其中的一個原子u只匹配除了其中字符的任意一個原子u0-9匹配 0-9 任何一個數(shù)字ua-z匹配小寫 a-z 任何一個字母uA-Z匹配大寫 A-Z 任何一個字母 u.點在正則中表示 除換行符外 的任意字符后盾網(wǎng) 人人做后盾元字符組原子組)例如:$str = 后盾官網(wǎng)houdunwang后盾論壇bbs.houdunwang我在后盾的網(wǎng)名叫houdun;$preg = /(houdun)wang/is;$newStr = preg_replace($preg, 1wang, $str);echo $newStr

5、;以上示例是將houdunwang字符串中的houdun描紅后盾網(wǎng) 人人做后盾元字符組原子組)- 如果一次要匹配多個元子,可以通過元子組完成- 原子組與原子表的差別在于原子組一次匹配多個元子,而原子表則是匹配成功表中的一個元字符- 原子組代表一個原子集合或者說一個大原子,并壓入堆 (內(nèi)存)用于調(diào)用,調(diào)用時單引號里用 1,雙引號用 1后盾網(wǎng) 人人做后盾不保存模式u使用原子組時擴號中的所有內(nèi)存會被臨時緩存到內(nèi)存的堆棧中,如下示例:u$str = 我喜歡上的網(wǎng)站有houdunwang和sina;u$preg = /(:/)?w+?.w+.(com|com)/is;upreg_match_all( $

6、preg, $str, $arr );uvar_dump( $arr );u上面示例中返回的數(shù)組會包括匹配到的原子組如等,有時我們并不希望返回這個原子組,這時可以將上面的正則改寫為如下形式:u$preg = /(?:/)?w+?.w+.(?:com|com)/is”;u用 ?: 修飾的原子組表示該原子組不會緩存在內(nèi)存中,結(jié)果集中也不會包括該原子組后盾網(wǎng) 人人做后盾選擇修釋符u 選擇修釋符 | 代表在 | 左右兩側(cè)有一個匹配到就可以u 例如:u $str = 與新浪網(wǎng)sina;u $preg = /.(|sina)./is;u $new_str = preg_replace($preg, .ho

7、udunwang. , $str);后盾網(wǎng) 人人做后盾斷言匹配u如果想在匹配時設置前面或后面只能是什么字符或者不能是什么字符這樣的情況我們可以使用斷言匹配處理u(?=XXX)/前面是 XXX 開始的u(?!XXX)/前面不是以 XXX 開始的u(?=XXX)/后面是以 XXX 結(jié)束的u(?!XXX)/后面不是以 XXX 結(jié)束的后盾網(wǎng) 人人做后盾斷言匹配例如:$str = 后盾官網(wǎng)houdunwang后盾論壇bbs.houdunwang;$preg = /(?!:/)(?:bbs|www).(houdunwang)/isU;$new_str = preg_replace($preg, 1, $s

8、tr);echo $new_str;以上示例給所有不以http開始的houdunwang的urL加上http后盾網(wǎng) 人人做后盾重復匹配u如果要重復匹配一些內(nèi)容時我們要使用重復匹配修飾符,包括以下幾種u* 重復零次或更多次u+ 重復一次或更多次u? 重復零次或一次un 重復n次un, 重復n次或更多次un,m 重復n到m次u因為正則最小單位是元字符,而我們很少只匹配一個元字符如 a、b 所以基本上重復匹配在每條正則語句中都是必用到的內(nèi)容后盾網(wǎng) 人人做后盾禁止重復匹配u正則表達式在進行重復匹配時,默認是貪婪匹配模式,也就是說會盡量匹配更多內(nèi)容,但是有的時候我們并不希望他匹配更多內(nèi)容,這時可以通過

9、? 進行修飾來禁止重復匹配u*? 重復任意次,但盡可能少重復u+? 重復1次或更多次,但盡可能少重復u? 重復0次或1次,但盡可能少重復un,m? 重復n到m次,但盡可能少重復un,? 重復n次以上,但盡可能少重復后盾網(wǎng) 人人做后盾匹配字符邊界u如果想匹配字符的邊界,邊界包括空格、標點符號、換行等,可以使用正則表達式的匹配字符邊界修飾符如下u匹配字符串邊界u 匹配字符串的開始$ 匹配字符串的結(jié)束,忽略換行符u單詞邊界限制ub匹配單詞的邊界uB匹配除單詞邊界以外的部分后盾網(wǎng) 人人做后盾模式修正符u正則表達式在執(zhí)行時會按他們的默認執(zhí)行方式進行,但有時候默認的處理方式總不能滿足我們的需求,所以我們可

10、以修正正則處理的默認執(zhí)行方式:ui不區(qū)分大小寫字母的匹配um將字符串視為多行us將字符串視為單行,換行符當普通字符看待 使 . 匹配任何字符ux模式中的空白忽略不計uU匹配到最近的字符串ue將替換的字符串作為表達使用后盾網(wǎng) 人人做后盾常用正則操作函數(shù)u preg_match()u 語法:int preg_match ( string $pattern , string $subject , array &$matches , int $flags = 0 , int $offset = 0u 搜索subject與pattern給定的正則表達式的一個匹配后盾網(wǎng) 人人做后盾常用正則操作函數(shù)

11、u preg_match_all()u 語法:int preg_match_all ( string $pattern , string $subject , array &$matches , int $flags = PREG_PATTERN_ORDER , int $offset = 0 )u 搜索subject中所有匹配pattern給定正則表達式 的匹配結(jié)果并且將它們以flag指定順序輸出到matches中后盾網(wǎng) 人人做后盾常用正則操作函數(shù)u preg_split()u 語法:array preg_split ( string $pattern , string $subject , int $limit = -1 , int $flags = 0 )u 通過一個正則表達式分隔給定字符串后盾網(wǎng) 人人做后盾常用正則操作函數(shù)u preg_repla

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論