作者weiyucsie (選擇那刻 才算開始)
看板PHP
標題Re: [請益] preg_match的(.+?) 怎麼解讀??
時間Fri Sep 11 17:40:44 2009
範例:
<?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
推 soscare :這有點複雜 我再想想 哈哈 09/11 17:53
推 soscare :噢噢 懂了 09/11 18:05
→ weiyucsie :阿... 突然發現我忘了丟結果了,難怪不太好懂XD 09/11 19:04
※ 編輯: weiyucsie 來自: 140.114.203.6 (09/11 19:05)
→ hellolucky :下面有測試工具 剛好剛剛也在研究看到的 09/12 00:51