Re: [請益] preg_match的(.+?) 怎麼解讀??

看板PHP作者 (選擇那刻 才算開始)時間15年前 (2009/09/11 17:40), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串2/2 (看更多)
範例: <?php $a = "#12345#67890#"; if (preg_match('/#(.+?)#/', $a, $matches)) { echo "Non-greedy: ".$matches[1]."\n"; } if (preg_match('/#(.+)#/', $a, $matches)) { echo "Greedy: ".$matches[1]."\n"; } ?> 字串是#12345#67890# 輸出結果: Non-greedy: 12345 Greedy: 12345#67890 一般情況是greedy的 所以會match 12345#67890 你會發現第二個#也被 . 所match到了 但是non-greedy的話 遇到#他就停下來了 避免因為是. 而無限制的match下去 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.203.6

09/11 17:53, , 1F
這有點複雜 我再想想 哈哈
09/11 17:53, 1F

09/11 18:05, , 2F
噢噢 懂了
09/11 18:05, 2F

09/11 19:04, , 3F
阿... 突然發現我忘了丟結果了,難怪不太好懂XD
09/11 19:04, 3F
※ 編輯: weiyucsie 來自: 140.114.203.6 (09/11 19:05)

09/12 00:50, , 4F
09/12 00:50, 4F

09/12 00:51, , 5F
下面有測試工具 剛好剛剛也在研究看到的
09/12 00:51, 5F
文章代碼(AID): #1AgXiVAD (PHP)
文章代碼(AID): #1AgXiVAD (PHP)