在 PHP 中可以使用 POSIX 和 PERL 版本的 Regular Expression,我有一個與 Greedy 有關的問題想問一下,如下:
PHP 語法:
$str = "http://123.JPG___456.JPG";
$match = array();
$pattern = "http://(.*\.JPG)";
ereg($pattern, $str, $match);
如果程式這樣子寫,則用 print_r() 輸出 $match 的內容會是:
語法:
Array
(
[0] => http://123.JPG___456.JPG
[1] => 123.JPG___456.JPG
)
想請問一下,這個 pattern 應該要怎麼寫才能讓 $match[1] 所比對到的值為
123.JPG,而不是
123.JPG___456.JPG?
我看書上說 pattern 可以使用 Nongreedy Qualifier(*? 與 +*),可是我一寫下去 compile 就是不會過,不知道該怎麼寫才對? 還是這只支援 PERL 版的、不支援 POSIX 版??