^在$p = '/^我[^\s]+(蘋果|香蕉)$/';里有,為什么在$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/';里就沒有,是斷言目標的開始位置的那個,這不是必須的?還是有什么條件?
除了標題里提到的問題,還有$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/';
下劃線的地方有兩個問題:\w匹配字母或數(shù)字或下劃線,那后面的\.\-呢,\-這里是范圍?;還有后面兩處加號是代表1 次或多次匹配?
是的話,我還有第三個問題,我自己的答案是$p = '/[\w\.\-]+[0-9\-]/';這個,成功了的,但看別的同學是
$p = '/\d+-[^\s]+\d/'; ?這里也有兩個+,為什么要多次匹配兩次,因為有兩個\d?那為什么要有兩個\d,第一個+后面還有-,這是多匹配加范圍? ?
新手望多指教,謝謝
2016-04-13
非常感謝啊
2015-07-19
由于后面的正則我都不太懂2333就去看了精通正則表達式這本書
來自問自答一下
^這個之前我理解錯了,我以為是這個表達式開頭要用上,其實是 假設(shè)你要查找行首的字母單詞等等時才需要加上,像是郵箱的那個題目,他最多用上$而不是^
$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/ ? 這個里面\.\-,其實\是轉(zhuǎn)義符號,本來. -都是元字符,加上這個,就可以當做普通的字符。
后面的+號是1次多次匹配,可以當成【1,無窮】,順便說 *是【0,無窮】,?是【0,1】
正確答案里的/\d+\-\d+/,電話號碼是前面的區(qū)號加上后面的數(shù)字,所以兩塊數(shù)字被-分隔開了,所以有兩個\d,\-也是我上面說的那個作用,順便一提范圍的話,【0-9】,這種是范圍。
本來壓根不明白看下書就懂了,的確課程里內(nèi)容安排少比較難講清楚,我只看了二十來頁最基本的都明白了,也建議大家不懂就下個看一下。over