Re: [請益] preg_match的(.+?) 怎麼解讀??
範例:
<?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
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):