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