加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – (.*)而不是(.*?)

发布时间:2020-12-13 13:53:11 所属栏目:PHP教程 来源:网络整理
导读:假设我们有这个html内容,我们愿意用正则表达式获取Content1,Content2,.. liContent1/liliContent2/liliContent3/liliContent4/li 如果我使用下面的行 preg_match_all('/li(.*)/li/',$text,$result); 我将得到一个包含以下单行的数组: Content1/liliContent
假设我们有这个html内容,我们愿意用正则表达式获取Content1,Content2,..
<li>Content1</li>
<li>Content2</li>
<li>Content3</li>
<li>Content4</li>

如果我使用下面的行

preg_match_all('/<li>(.*)</li>/',$text,$result);

我将得到一个包含以下单行的数组:

Content1</li>
<li>Content2</li>
<li>Content3</li>
<li>Content4

并通过使用此代码:

preg_match_all('/<li>(.*?)</li>/',$result);

我将得到一个包含4行的数组,包含Content1,…

为什么(.*)不起作用,因为它意味着匹配任何字符零次或多次

*以贪婪的方式比赛,*?以非贪婪的方式比赛.

这意味着.*将匹配尽可能多的字符,包括所有中间< / li>< li>对,仅在最后一次出现的< / li>时停止.另一方面,.*?将匹配尽可能少的字符,在第一次出现< / li>时停止.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读