正規表示式在匹配字串時,遵循以下2個基本原則:
1.最左原則:正規表示式總是從目標字串的最左側開始,依次匹配,直到匹配到符合表示式要求的部分,或直到匹配目標字串的結束。
2.最長原則:對於匹配到的目標字串,正規表示式總是會匹配到符合正規表示式要求的最長的部分;即貪婪模式
當使用 pcre 函式的時候,模式需要由分隔符閉合包裹。分隔符可以使任意非字母數字、非反斜線、非空白字元。
常用的分隔符是正斜線(/)、hash符號(#) 以及取反符號(~)。
當表示式有過多的轉義字元時,建議優先使用#,如url;
$str = '';
$pattern = '/http:\/\/.*com/';//需要轉義/
echo preg_match($pattern,$str,$match);
$pattern = '#http://.*com#';//不需要轉義/
echo preg_match($pattern,$str,$match);
特別字元說明^
1,匹配輸入字串的開始位置,如果設定模式修飾符為m,則 ^ 也匹配 『\n』 或 『\r』之後字元。
2,在字元域中表示取反,如[^1-5],該字元不是1~5之間的數字
$匹配輸入字串的結尾位置。如果設定模式修飾符為m,則 $ 也匹配 『\n』 或 『\r』之前字元。
.匹配除換行符 \n之外的任何單字元。如果設定模式修飾符為s,則匹配所有字元。
( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。
[ ]1,字元集合(字元域)。匹配所包含的任意乙個字元。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
2,匹配指定範圍內的任意字元。例如,[a-za-z0-9]。
限定符表示式
\轉義字元
|或選擇。例如,'z|food' 能匹配 "z" 或 "food"
限定符主要是用來限定每個字串出現的次數。
限定字元含義?
零次或一次
*零次或多次
+一次或多次
n次至少n次
n到m次
字元含義
\d任意乙個十進位制數字,等價於 [0-9]。
\d任意乙個非十進位制數字,等價於 [^0-9]。
\s任意乙個空白字元(空格、換行符、換頁符、回車符、字表符)
\s任意乙個非空白字元
\w任意乙個單詞字元,等價於[a-za-z0-9_]。
\w任意個非單詞字元,等價於 [^a-za-z0-9_]。
\b匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如, 『er\b』 可以匹配」never」 中的 『er』,但不能匹配 「verb」 中的 『er』。
\b匹配非單詞邊界。』er\b』 能匹配 「verb」 中的 『er』,但不能匹配 「never」 中的 『er』。
\n匹配乙個換行符。等價於 \x0a 和 \cj。
\r匹配乙個回車符。等價於 \x0d 和 \cm。
\f匹配乙個換頁符。等價於 \x0c 和 \cl。
\t匹配乙個製表符。等價於 \x09 和 \ci。
模式修飾符的作用是設定模式,也就是正規表示式如何解釋。
修飾符說明
i忽略大小寫
m多文字模式,使用^和$表示任何一行都可以以正規表示式開始或結束
s點號元字元「.」匹配所有字元,包含換行符。如果沒有這個修飾符,點號不匹配換行
x忽略空白字元
u取消貪婪模式
preg_match($pattern,$subject,[array &$matches])
preg_match_all($pattern,$subject,array &$matches)
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
preg_split ( string pattern,stringsubject [, int limit=−1[,intflags = 0 ]] )
php正規表示式詳解,PHP正規表示式使用詳解
操作符 描述 轉義符 圓括號和方括號 限定符 anymetacharacter 位置和順序 或 操作 全部符號解釋 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開...
PHP正規表示式
php正規表示式的定義 用於描述字元排列和匹配模式的一種語法規則。它主要用於字串的模式分割 匹配 查詢及替換操作。php中的正則函式 php中有兩套正則函式,兩者功能差不多,分別為 一套是由pcre perl compatible regular expression 庫提供的。使用 preg 為字...
PHP正規表示式
今天起,會開始弄乙個php教程系列文章.主要是針對正規表示式的.大概的內容排序是這樣安排的 1.php 中的正規表示式 2.八個實用的php正規表示式 3.如何書寫更易閱讀的php正規表示式 4.半小時精通正規表示式 5.正則在文章採集系統中的應用及常見問題答疑 6.更多策劃中 投稿,完善本系列,讓...