1. 『^』和 $』 表示用來匹配字串的開始和結束。(^有兩種用法,下一種,見下面)
2. 『*』表示0次或者多次,『+』表示1次或多次,『?』表示0次或1次
3. 大括號裡面控制字元出現的個數
4.字元 『│』, 相當於or 操作
5.乙個點』.』可以代表除換行符之外的任意單個字元,中括號括住的內容只匹配乙個單一的字元
如果需要匹配包含換行符在內的任意字元
"([
\s\s
]*)" 或"([
\d\d
]*)" 或"([
\w\w
]*)" 來表示。
6.[^x]:匹配除了 x 意外的任意字元
7.常用的元字元
$str="hi history";
preg_match_all("/\bhi\b/",$str,$arr);
preg_match_all("/hi/",$str,$arr1);
var_dump($arr);
var_dump($arr1);
輸出為:
array(1)
}array(1)
}
即」\b」只匹配單個的單詞
8.正規表示式中需要轉義的特殊字元:
* . ? + $ ^ [ ] ( ) | \ / " "
如[,如果需要轉義使用\[
;
下面的**是關於\[
的使用**:
$str="[123]";
preg_match_all("/\[([^\]]*)\]/",$str,$arr);//更簡單的正則式為
"/\[(.*)\[/"
var_dump($arr);
輸出為
array(2)
[1]=>
array(1)
}
9.preg_match()函式:
函式原型:
int preg_match( string pattern, string subject [, array matches ] )
成功返回 1 ,否則返回 0 。
引數:
例如:
$str=" aabab ";
preg_match("/a.*?b/",$str,$arr);
var_dump($arr);
輸出為
array(1)
10.preg_match_all()函式:
函式原型:
int preg_match_all( string pattern, string subject, array matches [, int flags ] )
成功返回整個模式匹配的次數(可能為零),如果出錯返回 false 。
引數:
$str=" abcde
fghij
";preg_match_all("/(.*?)/",$str,$arr);
var_dump($arr);
array(2)
[1]=>
array(2)
}
11.模式修正符的使用
如字串aabab:
13.向後引用
定義:當用「()」定義了乙個正規表示式組後,正則引擎則會把被匹配的組按照順序編號,存入快取。當對被匹配的組進行向後引用的時候,可以用「\數字」的方式進行引用。」\1「引用第乙個匹配的後向引用組,」\2」引用第二個組,以此類推,」\n」引用第n個組。而」\0」則引用整個被匹配的正規表示式本身。我們看乙個例子。
假設你想匹配乙個html標籤的開始標籤和結束標籤,以及標籤中間的文字。例如
this is a testb>
則pattern為
.*
14.常用正規表示式
2.url:^[a-za-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$
手機號碼:^((\(\d\))|(\d\-))?13\d$
匹配html標記:.*|
提取資訊中的中國手機號碼:(86)*0*13\d
提取資訊中的中國固定**號碼:(\(\d\)|\d-|\s)?\d
千里碼的一道題:寫乙個正規表示式來匹配這些符合要求的身份證號(出生年份在1985-1995的男性使用者):^[\d]19(8[5-9]|9[0-5])[\d][013579][0-9xx]$
PHP正規表示式函式
關於正規表示式 regular expression 似乎譯成 字串解析處理,較合乎字面上的意義。但目前所有的相關書籍都譯成正規表示式或是正規表示法.等等,實際上是負責字串解析比對,並對字串做相關的處理。ereg 字串比對解析。ereg replace 字串比對解析並取代。eregi 字串比對解析,...
php正規表示式詳解,PHP正規表示式使用詳解
操作符 描述 轉義符 圓括號和方括號 限定符 anymetacharacter 位置和順序 或 操作 全部符號解釋 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開...
正規表示式一 php常用正規表示式匹配函式
注 pattren 正規表示式 subject 匹配的目標資料 注 1 pre match只匹配一次,而pre match all匹配所有的 2 前者是一維陣列,而後者是二維陣列 3 函式返回值對應匹配次數 注 1 兩者支援陣列匹配替換,即 pattern,replacement,subject均可...