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>时停止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |