課程
/后端開發(fā)
/PHP
/PHP進(jìn)階篇
$pattern = '/a(.*?)d/';中的(.*?)是什么意思,?是慵懶模式,應(yīng)該一次也不匹配才是哇,為什么bc都匹配了?
2016-06-02
源自:PHP進(jìn)階篇 3-5
正在回答
在/a(.*?)d/中,.表示匹配任意字符,*表示匹配0次以上,合在一起就是匹配/a...d/字符串,?作用是在滿足'.*'的一次以上匹配的條件,然后是盡可能少匹配,即匹配一次。
xjhtmxx 提問者
一般人認(rèn)為?表示懶惰模式但是:
???? '/a(.*?)d/'是匹配了兩個(gè)"內(nèi)的內(nèi)容,.表示匹配任意字符,*表示匹配0次以上,合在一起就是匹配全文字符串,但是因?yàn)榍昂笥幸栵@示,所以匹 配的是引號內(nèi)的全文。而?則是表示非貪婪匹配,也就是碰到符合這個(gè)條件的立馬就匹配,你可以把?取消掉試試就能立馬看出差別了。推薦多去看看正則30分鐘 入門教程,絕對經(jīng)典。
<?php$subject = "my email is spark@imooc.com";//在這里補(bǔ)充代碼,實(shí)現(xiàn)正則匹配,并輸出郵箱地址$pattern = '/[\w\-]+@\w+\.\w+/';preg_match($pattern, $subject, $matches);echo $matches[0];?>
解釋一下'/[\w\-]+@\w+\.\w+/':判斷是否為有效的Email格式.^ 匹配一行的開頭\w 指數(shù)字英文加下劃線 \.指一個(gè)字符"."\- 指一個(gè)字符"-"[\w\.\-] 指一個(gè)范圍 即 數(shù)字、字母、下劃線、字符"."、字符"-"+ 量詞 一個(gè)或多個(gè)[\w\.\-]+ 指一個(gè)或多個(gè)[\w\.\-] 這樣的字符,如 "aaa" "-ab" "c" "s._-l"@ 指一個(gè)字符"@"量詞 一個(gè)或零個(gè)* 量詞 零個(gè)或多個(gè)
舉報(bào)
輕松學(xué)習(xí)PHP中級課程,進(jìn)行全面了解,用PHP快速開發(fā)網(wǎng)站程序
2 回答正則表達(dá)式
1 回答正則表達(dá)式
3 回答php正則表達(dá)式
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-06-02
在/a(.*?)d/中,.表示匹配任意字符,*表示匹配0次以上,合在一起就是匹配/a...d/字符串,?作用是在滿足'.*'的一次以上匹配的條件,然后是盡可能少匹配,即匹配一次。
2016-08-06
一般人認(rèn)為?表示懶惰模式但是:
???? '/a(.*?)d/'是匹配了兩個(gè)"內(nèi)的內(nèi)容,.表示匹配任意字符,*表示匹配0次以上,合在一起就是匹配全文字符串,但是因?yàn)榍昂笥幸栵@示,所以匹 配的是引號內(nèi)的全文。而?則是表示非貪婪匹配,也就是碰到符合這個(gè)條件的立馬就匹配,你可以把?取消掉試試就能立馬看出差別了。推薦多去看看正則30分鐘 入門教程,絕對經(jīng)典。
<?php
$subject = "my email is spark@imooc.com";
//在這里補(bǔ)充代碼,實(shí)現(xiàn)正則匹配,并輸出郵箱地址
$pattern = '/[\w\-]+@\w+\.\w+/';
preg_match($pattern, $subject, $matches);
echo $matches[0];
?>
解釋一下'/[\w\-]+@\w+\.\w+/':判斷是否為有效的Email格式.
^ 匹配一行的開頭
\w 指數(shù)字英文加下劃線
\.指一個(gè)字符"."
\- 指一個(gè)字符"-"
[\w\.\-] 指一個(gè)范圍 即 數(shù)字、字母、下劃線、字符"."、字符"-"
+ 量詞 一個(gè)或多個(gè)
[\w\.\-]+ 指一個(gè)或多個(gè)[\w\.\-] 這樣的字符,如 "aaa" "-ab" "c" "s._-l"
@ 指一個(gè)字符"@"
量詞 一個(gè)或零個(gè)
* 量詞 零個(gè)或多個(gè)