PHP下常用正則表達(dá)式
添加時間:2014-7-12 16:54:10
添加:
思海網(wǎng)絡(luò)
PHP下常用正則表達(dá)式:
手機(jī)號碼:
$mode = "/^1[358]\d{9}/";郵箱地址:
$mode = "/^[a-z][-_\.]?[a-z\d]*@[a-z0-9]+[\.][a-z]{2,4}/i";
正則基礎(chǔ):
$mode = "/^1[358]\d{9}/i";
匹配模塊必須以 / / 開始和結(jié)束,第二個 / 后可以加模式修正符
原子
①a-z A-Z _ 0-9 //最常見的字符
②(abc) //用圓括號括起來起來的單元符號
③[abcs] [^abd] //用方括號括起來的原子表,
原子表中的^代表排除或相反內(nèi)容
\d 包含所有數(shù)字[0-9]
\D 除所有數(shù)字外[^0-9]
\w 包含所有英文字符[a-zA-Z_0-9]
\W 除所有英文字符外[^a-zA-Z_0-9]
\s 包含空白區(qū)域如回車、換行、分頁等 [\f\n\r]
元字符
* 匹配前一個內(nèi)容的0次1次或多次
+ 1次或多次
? 0次或1次
. 代表任意一個字符(除了回車換行)
相當(dāng)與php的 (“或”的意思)
^ 強(qiáng)制匹配字符串首部內(nèi)容
$ 強(qiáng)制匹配字符串尾部內(nèi)容
[^abc] 匹配除了a或b或c之外的內(nèi)容
\b 匹配單詞邊界,邊界可以是空格或者特殊符號
\B 匹配除帶單詞邊界以外的內(nèi)容
{m} 匹配前一個內(nèi)容的重復(fù)次數(shù)為M次
{m,} 匹配前一個內(nèi)容的重復(fù)次數(shù)大于等于M次
{m,n} 匹配前一個內(nèi)容的重復(fù)次數(shù)M次到N次
( ) 整體匹配,并放入內(nèi)存,可使用\\1 或 \\2 …依次獲取
優(yōu)先級:依次降低
( ) 圓括號因?yàn)槭莾?nèi)存處理所以最高
* ? + { } 重復(fù)匹配內(nèi)容其次
^ $ \b 邊界處理第三
條件處理第四
最后按照運(yùn)算順序計算匹配
常用修正符: $mode = "/正則/U";
i 正則內(nèi)容在匹配時候不區(qū)分大小寫(默認(rèn)是區(qū)分的)
m 在匹配首內(nèi)容或者尾內(nèi)容時候采用多行識別匹配
S 將回車轉(zhuǎn)化為空格
x 忽略正則中的空白
A 強(qiáng)制從頭開始匹配
D 強(qiáng)制$匹配尾部無任何內(nèi)容 \n
U 禁止貪婪匹配,只跟蹤到最近的一個匹配符并結(jié)束,
常用在采集程序上的正則表達(dá)式
應(yīng)用
preg_match_all ( string pattern, string subject, array matches [, int flags] )
截取比較詳細(xì)的內(nèi)容,采集網(wǎng)頁,分析文本
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
提示 1、替換內(nèi)容可以是一個正則也可以是數(shù)組正則
2、替換內(nèi)容可以通過修正符e來解決替換執(zhí)行內(nèi)容
preg_split ( string pattern, string subject [, int limit [, int flags]] )
通過正則表達(dá)式來切割相關(guān)內(nèi)容,類似之前學(xué)過的explode切割函數(shù),但explode
只能按照一種方式切割有局限性。
調(diào)試代碼 :
[code]
<?php
$mode = "/^[a-z][-_\.]?[a-z\d]*@[a-z0-9]+[\.][a-z]{2,4}/i";
$str = "a12345@jb51.net";
echo $str.'<hr>';
if(preg_match($mode, $str, $arr)){
echo 'succeed -- <font color=red>'.$arr[0];
}else{
echo 'failed';
}
?>
[code]
關(guān)鍵字:PHP、正則表達(dá)式
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解