PHP正規表示式

2021-09-12 22:21:32 字數 2054 閱讀 9383

正規表示式在匹配字串時,遵循以下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.更多策劃中 投稿,完善本系列,讓...