關于正則表達式name:[.+]表示看不懂啊
剛剛有個同學告訴我這個正則表達式可以寫成name:[.+]但是表示看不懂
如果是name:[.+]的話,匹配到的不應該是name:steven jobs嗎
而且preg_match不是不是只得到一個結果集嗎???
那$match[1]又怎么會是steven jobs呢??
求老師解答,最好把圓括號的知識點也講講吧
剛剛有個同學告訴我這個正則表達式可以寫成name:[.+]但是表示看不懂
如果是name:[.+]的話,匹配到的不應該是name:steven jobs嗎
而且preg_match不是不是只得到一個結果集嗎???
那$match[1]又怎么會是steven jobs呢??
求老師解答,最好把圓括號的知識點也講講吧
2017-02-26
舉報
2017-02-26
我認為只有整個正則表達式得到匹配的前提下,才會將符合( )的內容放到$1、$2里,剛剛試驗了一下,是這樣的,我也是剛學正則,不太難吧
2017-02-26
我不是老師,給你講一下,按你的思路,name:(.+)才是對的,
name:[.+]本身是錯的,因為[]括號只會匹配一個字符,name:[.]+還差不多;
preg_match是得到一個結果,得到的結果放在$0里,匹配到的其他()里的內容放在$1,$2……里;
此題最后的結果要求在$1里,必須要有(),所以匹配表達式可以寫為name:(.+)