PHP正規表示式

2022-07-29 05:15:12 字數 2133 閱讀 4290

php正規表示式

一、函式:

1、preg_match(匹配一次)

2、preg_match_all(匹配多次,全域性匹配)

二、php正則語法

1、限定符:可以是//,也可以##

2、元字元

1)、使用乙個字元本身,來代表乙個字元

2)、使用乙個轉義字元表示乙個字元

3)、表示乙個集合中某乙個字元

[begin-end],如[a-za-z]:表示所有字母

[^abc]:除abc外其他的字元

4)、點.:表示出換行之外的任意乙個字元

|或者,如:$reg = '/red|blue|green/';

5)、中文範圍:[\x-\x] 限定符後面加u,表示以utf-8形式匹配

3、量詞:用在元字元後面,用來約束篩選的字元數量

1)、:最少m個,最多n個

2)、:固定m個

3)、特殊的量詞:

*:表示任意乙個數量,可能是0個,也可能是多個

+:表示至少有乙個

?:表示可能0個,可能1個

****** 注:?放在量詞的後面,表示採用懶惰模式匹配,php預設貪婪模式

4、其他

^表示被匹配字串必須以後面的字元開頭,

$表示被匹配的字串必須以$前面的字元結束

如:'/^red[\w]*[\d]$/':以red開頭,以數字結尾

5、模式修正符:

i:忽略大小寫

s:萬能點模式,  .  能匹配任意字元

u:強制使用utf-8解析中文

u:全域性懶惰模式,匹配乙個字元

三、分組

1、使用小括號將匹配的結果分組,篩選出我們需要的內容

preg_metch()匹配後,將結果儲存在陣列中

索引為0,為整個規則匹配的結果

索引為1,為第乙個分組

索引為2,為第二個分組

2、反向引用分組:

在$reg規則裡引用分組,使用\n,\1表示引用第乙個分組;\2表示引用第二個分組

3、非捕獲子組:

如果不想篩選分組的結果,可以在分組()裡使用?:,表示非捕獲

$reg = '/**:

四、預查

1、正向預查:匹配時,從左到右匹配到需要預查的地方,先看看是什麼內容

(?=預查的內容)

示例**:

執行結果

由於採用懶惰模式,所以只匹配了helloc;   

2、非正向預查

預先從左到右檢視一下,後面不是某個字元(?!)

3、逆向預查  

從右向左先預查(?<=)

4、非逆向預查(?

練習:1、將topicquestionmodel修改為topic_question_model

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.更多策劃中 投稿,完善本系列,讓...