PHP 正則表達示

PHP 正則表達示


php如何使用正則表達式

正則表達式基本元字符

#正則表達式示例 ^:匹配輸入字符串開始的位置。若是設置了 RegExp 對象的 Multiline 屬性,^ 還會與「\n」或「\r」以後的位置匹配。 $:匹配輸入字符串結尾的位置。若是設置了 RegExp 對象的 Multiline 屬性,$ 還會與「\n」或「\r」以前的位置匹配。 *:零次或屢次匹配前面的字符或子表達式。例如,zo* 匹配「z」和「zoo」。* 等效於 {0,}。 +:一次或屢次匹配前面的字符或子表達式。例如,「zo+」與「zo」和「zoo」匹配,但與「z」不匹配。+ 等效於 {1,}。 ?:零次或一次匹配前面的字符或子表達式。例如,「do(es)?」匹配「do」或「does」中的「do」。? 等效於 {0,1}。 {n}:n 是非負整數。正好匹配 n 次。例如,「o{2}」與「Bob」中的「o」不匹配,但與「food」中的兩個「o」匹配。 {n,}:n 是非負整數。至少匹配 n 次。例如,「o{2,}」不匹配「Bob」中的「o」,而匹配「foooood」中的全部 o。「o{1,}」等效於「o+」。「o{0,}」等效於「o*」。 {n,m}:M 和 n 是非負整數,其中 n <= m。匹配至少 n 次,至多 m 次。例如,「o{1,3}」匹配「fooooood」中的頭三個 o。'o{0,1}' 等效於 'o?'。注意:您不能將空格插入逗號和數字之間。 ?:當此字符緊隨任何其餘限定符(*、+、?、{n}、{n,}、{n,m})以後時,匹配模式是「非貪心的」。「非貪心的」模式匹配搜索到的、儘量短的字符串,而默認的「貪心的」模式匹配搜索到的、儘量長的字符串。例如,在字符串「oooo」中,「o+?」只匹配單個「o」,而「o+」匹配全部「o」。 .:匹配除「\n」以外的任何單個字符。若要匹配包括「\n」在內的任意字符,請使用諸如「[\s\S]」之類的模式。 (pattern):匹配 pattern 並捕獲該匹配的子表達式。可使用 $0…$9 屬性從結果「匹配」集合中檢索捕獲的匹配。若要匹配括號字符 ( ),請使用「\(」或者「\)」。 (?:pattern):匹配 pattern 但不捕獲該匹配的子表達式,即它是一個非捕獲匹配,不存儲供之後使用的匹配。這對於用「or」字符 (|) 組合模式部件的狀況頗有用。例如,'industr(?:y|ies) 是比 'industry|industries' 更經濟的表達式。 (?=pattern):執行正向預測先行搜索的子表達式,該表達式匹配處於匹配 pattern 的字符串的起始點的字符串。它是一個非捕獲匹配,即不能捕獲供之後使用的匹配。例如,'Windows (?=95|98|NT|2000)' 匹配「Windows 2000」中的「Windows」,但不匹配「Windows 3.1」中的「Windows」。預測先行不佔用字符,即發生匹配後,下一匹配的搜索緊隨上一匹配以後,而不是在組成預測先行的字符後。 (?!pattern):執行反向預測先行搜索的子表達式,該表達式匹配不處於匹配 pattern 的字符串的起始點的搜索字符串。它是一個非捕獲匹配,即不能捕獲供之後使用的匹配。例如,'Windows (?!95|98|NT|2000)' 匹配「Windows 3.1」中的 「Windows」,但不匹配「Windows 2000」中的「Windows」。預測先行不佔用字符,即發生匹配後,下一匹配的搜索緊隨上一匹配以後,而不是在組成預測先行的字符後。 x|y:匹配 x 或 y。例如,'z|food' 匹配「z」或「food」。'(z|f)ood' 匹配「zood」或「food」。 [xyz]:字符集。匹配包含的任一字符。例如,「[abc]」匹配「plain」中的「a」。 [^xyz]:反向字符集。匹配未包含的任何字符。例如,「[^abc]」匹配「plain」中的「p」。 [a-z]:字符範圍。匹配指定範圍內的任何字符。例如,「[a-z]」匹配「a」到「z」範圍內的任何小寫字母。 [^a-z]:反向範圍字符。匹配不在指定的範圍內的任何字符。例如,「[^a-z]」匹配任何不在「a」到「z」範圍內的任何字符。 \b:匹配一個字邊界,即字與空格間的位置。例如,「er\b」匹配「never」中的「er」,但不匹配「verb」中的「er」。 \B:非字邊界匹配。「er\B」匹配「verb」中的「er」,但不匹配「never」中的「er」。 \cx:匹配 x 指示的控制字符。例如,\cM 匹配 Control-M 或回車符。x 的值必須在 A-Z 或 a-z 之間。若是不是這樣,則假定 c 就是「c」字符自己。 \d:數字字符匹配。等效於 [0-9]。 \D:非數字字符匹配。等效於 [^0-9]。 \f:換頁符匹配。等效於 \x0c 和 \cL。 \n:換行符匹配。等效於 \x0a 和 \cJ。 \r:匹配一個回車符。等效於 \x0d 和 \cM。 \s:匹配任何空白字符,包括空格、製表符、換頁符等。與 [ \f\n\r\t\v] 等效。 \S:匹配任何非空白字符。與 [^ \f\n\r\t\v] 等效。 \t:製表符匹配。與 \x09 和 \cI 等效。 \v:垂直製表符匹配。與 \x0b 和 \cK 等效。 \w:匹配任何字類字符,包括下劃線。與「[A-Za-z0-9_]」等效。 \W:與任何非單詞字符匹配。與「[^A-Za-z0-9_]」等效。 \xn:匹配 n,此處的 n 是一個十六進制轉義碼。十六進制轉義碼必須正好是兩位數長。例如,「\x41」匹配「A」。「\x041」與「\x04」&「1」等效。容許在正則表達式中使用 ASCII 代碼。 \num:匹配 num,此處的 num 是一個正整數。到捕獲匹配的反向引用。例如,「(.)\1」匹配兩個連續的相同字符。 \n:標識一個八進制轉義碼或反向引用。若是 \n 前面至少有 n 個捕獲子表達式,那麼 n 是反向引用。不然,若是 n 是八進制數 (0-7),那麼 n 是八進制轉義碼。 \nm:標識一個八進制轉義碼或反向引用。若是 \nm 前面至少有 nm 個捕獲子表達式,那麼 nm 是反向引用。若是 \nm 前面至少有 n 個捕獲,則 n 是反向引用,後面跟有字符 m。若是兩種前面的狀況都不存在,則 \nm 匹配八進制值 nm,其中 n 和 m 是八進制數字 (0-7)。 \nml:當 n 是八進制數 (0-3),m 和 l 是八進制數 (0-7) 時,匹配八進制轉義碼 nml。 \un:匹配 n,其中 n 是以四位十六進制數表示的 Unicode 字符。例如,\u00A9 匹配版權符號 (?)。 

正則表達式的修飾符

i:完成不區分大小寫的搜索
g:完成所有搜索
m:將一行字符串視爲多行
s:將一個字符串視爲一行
x:忽略正則表達式中的空白和註釋
u:第一次匹配後中止

php如何使用正則表達式進行查找、替換、分片

正則查找

$myvar = "Hello Moments"; #相似於python的if "llo" in myvar: print myvar #相似於php的if(strpos($myvar,"llo")){echo $myvar;} if(preg_match("/llo/",$myvar)){ echo $myvar; } 

替換

$myvar = "Hello Moments"; #相似於$myvar = str_ireplace("mom","www",$myvar); $myvar = preg_replace("/mom/i","www",$myvar); echo $myvar; 

分片

$myvar = "Hello Moments"; #相似於$myarr = explode(" ",$myvar); $myarr = preg_split("/\s/",$myvar); print_r($myarr);

 

衿華客

php 教程

  1. PHP簡介
  2. PHP安裝
  3. PHP語法
  4. PHP數據類型
  5. PHP變量
  6. PHP運算符
  7. PHP流程控制
  8. PHP函數
  9. PHP類與對象
  10. PHP字符串
  11. PHP正則表達示
  12. PHP文件
  13. PHP圖形圖像
  14. PHPXML
  15. PHP會話緩存
  16. PHP異常處理
  17. PHP數據庫
  18. PHP日期時間戳
  19. PHP代碼風格規範

server 環境

  1. ubuntu入門
  2. docker入門
  3. git入門
  4. iterm入門

frame 框架

  1. laravel入門
  2. dingo入門
  3. JWT入門
  4. Laravel框架關鍵技術解析
  5. laravel則修筆記
  6. rpc入門
  7. rabbitmq入門
  8. opencc多國語言
  9. laravel兄弟連筆記
  10. laravel進階

case 實例

  1. php面試題筆記
  2. python圖標提取
  3. 字幕亂碼問題
  4. 支付寶接口調用
  5. laravel開發筆記

db 數據庫

  1. elasticsearch入門
  2. 數據庫操做
  3. 數據庫設計
  4. redis入門

help

相關文章
相關標籤/搜索