Giả sử chúng tôi có nội dung html này và chúng tôi sẵn sàng nhận Content1, Content2, .. với cụm từ thông dụng.(. *) Thay vì (. *?)
<li>Content1</li>
<li>Content2</li>
<li>Content3</li>
<li>Content4</li>
Nếu tôi sử dụng dòng dưới đây
preg_match_all('/<li>(.*)<\/li>/', $text, $result);
tôi sẽ nhận được một mảng với một hàng duy nhất có chứa:
Content1</li>
<li>Content2</li>
<li>Content3</li>
<li>Content4
Và bằng cách sử dụng mã này:
preg_match_all('/<li>(.*?)<\/li>/', $text, $result);
tôi sẽ nhận được một mảng với 4 hàng chứa Co ntent1, Content2, ...
Tại sao (. *) không hoạt động kể từ khi nó có nghĩa là match any character zero or more times
cảm ơn, liên kết rất hữu ích – EBAG