PHP中的正規表示式函式介紹

2022-09-29 23:09:20 字數 2141 閱讀 6648

正規表示式(regular expression)

正規表示式系統:

1.posix

2.perl

php中使用的regex是pcre:

note:pcre(perl相容正規表示式,perl compatible regular expressions)

pcre語法:

1.定界符

必須成對出現,可以使用除0-9a-za-z\以外的任何字元

2.原子

1.正則需要匹配的可見和不可見字元都是原子

2.乙個正規表示式最少含有乙個原子

3.當需要匹配諸如"("、"["、"^"等含有語義的符號時需要用"\"反斜線進行轉義

原子字元:

\f 匹配換頁符

\n 匹配換行符

\r 匹配回車符

\t 匹配製表符

\v 匹配垂直製表符

3.元字元

\ 轉義字元

^ 匹配字串起始處

$ 匹配字串末尾

. 匹配除"\n"之外的任何單個字元

* 匹配前面的子表示式0或多次

+ 匹配前面的子表示式1次或多次

? 匹配前面的子表示式0次或1次

匹配n次

匹配n次或n次以上

lzcksinw 最少匹配n次至多匹配m次,(lzcksinwn<=m)

中括號代表原子表,中間的原子地位都是相等。在匹配的時候,匹配表中的任意乙個字元

[^] 抑揚符,排除後面的原子表所包含的字元。

(pattern) 程式設計客棧匹配pattern並獲取這一匹配。

\num 對獲取的第num個匹配的引用。

(?:pattern) 匹配pattern但不獲取這一匹配

(?=pattern) 正向肯定預查,非獲取匹配,例如:windows(?=xp|7)能匹配windowsxp中的windows不能匹配windows98中的windows

(?!=pattern) 正向否定欲查非獲取匹配,例如:windows(?!98|2000),能匹配windowsxp中的windows,不能匹配windows98中的windows

(?<=pattern) 反向肯定預查,非獲取匹配。例如:(?<=my|postgre)sql能匹配mysql中的sql,不能匹配mssql中的sql

(?\b 匹配單詞邊界

\b 匹配除單詞邊界以外的字元

\d 匹配任何乙個數字。等價於[0-www.cppcns.com9]

\d 匹配任何乙個非數字以外的字元。等價於[^0-9]

\s 匹配任何乙個空白字元(包括空格、製表符、換頁符等)。等價於[\f\n\r\t\v]

\s 匹配任何乙個非空白字元。等價於[^\f\n\r\t\v]

\w 匹配任何乙個數字、字母或下劃線。等價於[0-9a-za-z]

\w 匹配任何乙個非數字、字母或下劃線的字元。等價於[^0-9a-za-z]

4.模式修正符

i 不區分大小寫

m 此模式中如果有回車或換行,^和$將匹配每行的行首和行尾

s 讓.能匹配\n

x 忽略空白

u 取消貪婪,相當於(.*?)

a 與^效果一樣

d 結尾處不忽略回車 ,在結束處有$符的時候,在匹配的字串後面加上回車,$依然能夠匹配它成功。但是加上d之lzcksinw後,結尾的回車,不再匹配

note:正規表示式是從左向右進行匹配的

相關函式:

preg_filter — 執行乙個正規表示式搜尋和替換

preg_grep — 返回匹配模式的陣列條目

preg_last_error — 返回最後乙個pcre正則執行產生的錯誤**

preg_match_all — 執行乙個全域性正規表示式匹配

preg_match — 執行乙個正規表示式匹配

preg_quote — 轉義正規表示式字元

preg_replace_callback — 執行乙個正規表示式搜尋並且使用乙個**進行替換

preg_replace — 執行乙個正規表示式的搜尋和替換

preg_split — 通過乙個正規表示式分隔字串

本文標題: php中的正規表示式函式介紹

本文位址:

PHP正規表示式函式

關於正規表示式 regular expression 似乎譯成 字串解析處理,較合乎字面上的意義。但目前所有的相關書籍都譯成正規表示式或是正規表示法.等等,實際上是負責字串解析比對,並對字串做相關的處理。ereg 字串比對解析。ereg replace 字串比對解析並取代。eregi 字串比對解析,...

正規表示式介紹

一 前言 對於正規表示式,相信很多人都知道,但是很多人的第一感覺就是難學,因為看第一眼時,覺得完全沒有規律可尋,而且全是一堆各種各樣的特殊符號,完全不知所云。其實只是對正則不了解而以,了解了你就會發現,原來就這樣啊正則所用的相關字元其實不多,也不難記,更不難懂,唯一難的就是組合起來之後,可讀性比較差...

正規表示式 介紹

表示式全集 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的...