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