PHP支援兩種正規表示式,POSIX 和 Perl。POSIX 內建,Perl 語法須將 PCRE 程式庫編譯進來。正規表示式比字串慢,儘量用字串。
- ():括住子表示式。
- []:括住字元。
- {}:括住重覆次數說明。
- .除\以外的單一字元。如.at相符於cat,sat,mat。
- [a-z]、[^a-z]:a到z、非a-z。
- [aeiou]
- [a-zA-Z]
字元類別:
- [[:alpha:]]:字母。
- [[:alnum:]]:字母及數字。
- [[:lower:]]:小寫字母。
- [[:upper:]]:大寫字母。
- [[:digit:]]:數字字元。
- [[:xdigit:]]:16進位數字字元。
- [[:punct:]]:標點。
- [[:blank:]]:跳格及空白。
- [[:space:]]:空白。
- [[:cntrl:]]:控制字元。
- [[:print:]]:所有可視字元。
- [[:graph:]]:除空白字元外所有可視字元。
- []?:表示該樣式會出現0或1次。
- []*:表示該樣式會出現0或0次以上。
- []+:表示該樣式會出現1或1次以上。如[[:alpha:]]+表示至少會有一個英文字母。
- (very )*large:相符於large、very large、very very large。
- {3}:重複三次。
- {2,4}:重複二到四次。
- {2,}:重複兩次以上。
- ^(在表示式外),表示式須出現在被蒐尋字串首才算相符。如^bob。
- $,表示式須出現在被蒐尋字串尾才算相符。如com$。
- ^[a-z]$,字串頭尾之間,出現a-z任一字元就算相符。
(選項一)|(選項二)|(選項三):多選一都符合
特殊字元,在正規表示式中須以\特殊字元取代。
中括號外
- \:跳脫字元。
- ^:比對字串頭。
- $:比對字串尾。
- .:換行之外的任意字元。
- |:多重選擇起點(讀成OR)。
- (:子樣式起點。
- ):子樣式終點。
- *:重複0次以上。
- +:重複1次以上。
- {:重複次數 最小/最大 量化值起點。
- }:重複次數 最小/最大 量化值終點。
中括號外
- \:跳脫字元。
- ^:否定。
- -:表示字元範圍。
Function
- ereg(正規表示式,被蒐尋字串,陣列名);:在被蒐尋字串中找符合於正規表示式的子字串,找到就放進陣列,成為一個元素。傳回真假(1,0)。陣列名可省略。
- eregi(正規表示式,被蒐尋字串,陣列名);:同ereg,但不分大小寫。
- ereg_replace(正規表示式,取代字串,被蒐尋字串);:在被蒐尋字串中找到表示式,用取代字串換掉。
- eregi_replace(正規表示式,取代字串,被蒐尋字串);:同ereg_replace,但不分大小寫。
- split(正規表示式表述之分隔字串,被切割字串,傳回元素上限);:用分隔字串,將被切割字串,切成一段段,成為陣列中一個個元素。傳回陣列。