非常重要的php正則表達(dá)式詳解
正則表達(dá)式是php中一個(gè)非常重要的知識(shí)點(diǎn),通常用來(lái)查找和替換字符串,最常用的就是驗(yàn)證用戶輸入的信息格式是否正確,如郵件格式、電話格式等等。還有比如采集器之類的軟件中,正則也是必用不可!
現(xiàn)在開始來(lái)學(xué)習(xí)正則表達(dá)式的基本語(yǔ)法:
1.“/”是定界符,“/”定界符之間的部分就是將要在目標(biāo)對(duì)象中進(jìn)行匹配的模式。同時(shí)為了正則更加靈活,引入了元字符,即“+”, “*”,以及 “?”。
(1)“+”元字符規(guī)定其前導(dǎo)字符必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)一次或多次
比如:/php+/,能夠與“phpp”匹配,即字母ph后面連續(xù)出現(xiàn)一個(gè)或多個(gè)字母p的字符串相匹配。
(2)“*”元字符規(guī)定其前導(dǎo)字符必須在目標(biāo)對(duì)象中出現(xiàn)零次或連續(xù)多次
比如:/php*/能夠與“phpddt”相匹配,即ph后面可以有0個(gè)或多個(gè)p
(3)“?”元字符規(guī)定其前導(dǎo)對(duì)象必須在目標(biāo)對(duì)象中連續(xù)出現(xiàn)零次或一次。
比如:/php?/能夠“pher”匹配,即phh后面可以有0個(gè)或者1個(gè)p
其他重要的元字符:
- \s:用于匹配單個(gè)空格符,包括tab鍵和換行符;
- \S:用于匹配除單個(gè)空格符之外的所有字符;
- \d:用于匹配從0到9的數(shù)字;
- \w:用于匹配字母,數(shù)字或下劃線字符;
- \W:用于匹配所有與\w不匹配的字符;
- . :用于匹配除換行符之外的所有字符。
示例:/\s+/用于匹配目標(biāo)對(duì)象中的一個(gè)或多個(gè)空格字符
2.定位符用于規(guī)定匹配模式在目標(biāo)對(duì)象中的出現(xiàn)位置。常用的有“^”, “$”, “\b” 以及 “\B”
(1)“^”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)字符串的開頭
(2)“$”定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)對(duì)象的結(jié)尾
(3)\b定位符規(guī)定匹配模式必須出現(xiàn)在目標(biāo)字符串的開頭或結(jié)尾的兩個(gè)邊界之一
(4)“\B”定位符則規(guī)定匹配對(duì)象必須位于目標(biāo)字符串的開頭和結(jié)尾兩個(gè)邊界之內(nèi)
3.php的正則匹配模式非常靈活,可以指定某一范圍
例如:
/[A-Z]/
上述正則表達(dá)式將會(huì)與從A到Z范圍內(nèi)任何一個(gè)大寫字母相匹配。
/[a-z]/
上述正則表達(dá)式將會(huì)與從a到z范圍內(nèi)任何一個(gè)小寫字母相匹配。
/[0-9]/
上述正則表達(dá)式將會(huì)與從0到9范圍內(nèi)任何一個(gè)數(shù)字相匹配。
/([a-z][A-Z][0-9])+/
上述正則表達(dá)式將會(huì)與任何由字母和數(shù)字組成的字符串
4.可以同時(shí)與多種模式選擇匹配
如/phpddt.com|phpddt|100/可以與“phpddt.com” “phpddt” “100”相匹配
5.否定符 “[^]”規(guī)定目標(biāo)對(duì)象中不能存在模式中所規(guī)定的字符串
例如:[^phpddt]匹配除了phpddt字符外的所有東西
下面來(lái)講講正則表達(dá)式常用函數(shù)吧?。ǚ浅V匾?br />
<?php
//preg_match("正則表達(dá)式","字符串")用于在字符串中查找匹配項(xiàng)
$email = "987044391@qq.com";
if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){
echo '匹配成功<hr />';
}else {
echo '匹配失敗<hr />';
}
//preg_quote("字符串") 在每個(gè)有正則表達(dá)式語(yǔ)法前面加入一個(gè)轉(zhuǎn)義字符即\
$str = "php點(diǎn)點(diǎn)通是一個(gè)學(xué)習(xí)php的網(wǎng)站,(⊙o⊙)…";
echo preg_quote($str);
echo "<hr />";
//preg_split("正則","字符串")分割字符串
$php = "+php++點(diǎn)點(diǎn)通++++是好網(wǎng)站";
$field = preg_split("/\+{1,}/",$php);
foreach($field as $f){
echo $f." ";
}
echo "<hr />";
//preg_grep("正則","字符串") 與數(shù)組匹配后返回新數(shù)組
$phpddt = array("php點(diǎn)點(diǎn)通","php100","呵呵","hahaha","phpchina");
$item = preg_grep("/^php/",$phpddt);
print_r($item);
echo "<hr />";
//preg_replace("正則","替換內(nèi)容","原字符串") 很重要,很常用
$a = "歡迎光臨http://www.dbjr.com.cn/"; //給http開頭的加上超鏈接
echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a");
?>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)php正則表達(dá)式有所幫助。
- 最常用的PHP正則表達(dá)式收集整理
- PHP 正則表達(dá)式常用函數(shù)使用小結(jié)
- php正則表達(dá)式使用的詳細(xì)介紹
- php中字符串和正則表達(dá)式詳解
- php使用正則表達(dá)式提取字符串中尖括號(hào)、小括號(hào)、中括號(hào)、大括號(hào)中的字符串
- php過(guò)濾HTML標(biāo)簽、屬性等正則表達(dá)式匯總
- PHP正則表達(dá)式基礎(chǔ)入門
- php的正則表達(dá)式完全手冊(cè)
- PHP中的正則表達(dá)式實(shí)例詳解
- 日常收集整理php正則表達(dá)式(超常用)
- PHP正則表達(dá)式筆記與實(shí)例詳解
相關(guān)文章
使用php+Ajax實(shí)現(xiàn)唯一校驗(yàn)實(shí)現(xiàn)代碼[簡(jiǎn)單應(yīng)用]
使用php+Ajax實(shí)現(xiàn)唯一校驗(yàn)實(shí)現(xiàn)代碼[簡(jiǎn)單應(yīng)用],前臺(tái)用ajax后臺(tái)用php,需要的朋友可以參考下。2011-11-11
php截取html字符串及自動(dòng)補(bǔ)全html標(biāo)簽的方法
這篇文章主要介紹了php截取html字符串及自動(dòng)補(bǔ)全html標(biāo)簽的方法,是php對(duì)html操作非常實(shí)用的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解
這篇文章主要介紹了php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解,需要的朋友可以參考下2017-04-04

