2 wangpu666 wangpu666 于 2017.01.14 10:29 提问

关于php贪婪匹配的疑惑
php
 $str="
        <ul>
            <li>aaa</li>
            <li>bbb</li>
            <li>ccc</li>
        </ul>
    ";
preg_match("/<li>.+?<\/li>/",$str,$s);
var_dump($s);

源代码输出:
Array
(
    [0] => Array
        (
            [0] => <b>replace</b> a <b>mother</b>
        )

    [1] => Array
        (
            [0] => replace</b> a <b>mother
        )

)
为什么会出现 replace</b> a <b>mother这个结果。

1个回答

showbo
showbo   Ds   Rxr 2017.01.14 21:04
已采纳

没问题啊。。preg_match只输出一项才对啊。。
preg_match_all才是所有匹配,你去人贴对代码了?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
PHP正则贪婪/懒惰匹配模式
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。例如以下表达式将匹配以a开始,以b结束的最长字符串: a.*b 如果用来搜索“aabab”,它会匹配整个字符串“aabab”。这就是贪婪匹配。 有时,需要匹配尽可能少的字符,也就是懒惰匹配。前面给出的限定符都可以转化为懒惰匹配模式,只要在后面加上一个问号。例如“.*?”就意味着匹配任意
php关于正则表达式贪婪模式与非贪婪
工作中,我们经常要用到正则表达式去匹配到我们想要的数据,甚至还会把匹配到的数据替换成我们需要的数据。这一切,似乎很难做到,但是如果你会熟练使用正则表达式,这些,就不是个菜了。
(PHP)正则表达式-贪婪匹配与懒惰匹配的区别
<?php /** * Created by PhpStorm. * User: Ollydebug * Date: 2015/11/15 * Time: 15:20 */ $pattern = '/google.+123/'; //$pattern = '/google.+123/'; 修正匹配 //$pattern = '/google.+123/U'; 懒惰匹配 $subj
preg_match_all 正则表达式贪婪与非贪婪模式
贪婪模式和非贪婪模式差别就是那么大。 在正则html上的列表的时候,经常就会出现这样的错误。使用preg_match_all正则匹配到了整个字符串,但是子串的匹配被忽略了。
php正则表达式—贪婪模式(.*或.+)与懒惰模式(.*?或.+?)的应用
.表示除\n之外的任意字符; *表示匹配0-无穷; +表示匹配1-无穷;.* — 表示匹配0个或多个处换行符以外的字符;.+ — 表示匹配1个或多个处换行符以外的字符; 后边没有?时表示贪婪模式(非懒惰模式); 后边多一个?表示懒惰模式; ?必须跟在*或者+后边用; 如: 如果用正则匹配src中内容非懒惰模式匹配 src=".*" 匹配结果是:src="test.jpg" width="
正则表达式之贪婪模式讲解
没有注意过 贪婪模式和 非贪婪模式的含义 查看 这篇文章 参考 https://stackoverflow.com/questions/5319840/greedy-vs-reluctant-vs-possessive-quantifiers 关于正则表达式入门参考正则表达式30分钟入门教程 摘抄A greedy quantifier first matches as much as
PHP正则-贪婪匹配(最大匹配) 和最小匹配的问题。
贪婪匹配(最大匹配) 和最小匹配的问题。 在抓取链接地址时,使用以下正则时发现,当在链接标题 链接标题中含有HTML代码时,不能抓取到地址。 /]+href=[/"/']{0,1}([^>/"/'/s]+)[/"/']{0,1}[^>]*>([^>]+)/i 尚若换成以下方式 /]+href=[/"/']{0,1}([^>/"/'/s]+)[/"/']{0,1}[^>]*>(。+)/i
正则表达式的贪婪匹配与懒惰匹配
正则表达式的贪婪匹配与懒惰匹配
贪婪与懒惰--正则表达式
正则表达式默认的情况下,会在满足匹配条件下尽可能的匹配更多内容。如 a.*b,用他来匹配 aabab ,它会匹配整个 aabab ,而不会只匹配到 aab 为止,这就是贪婪匹配。 与贪婪匹配对应的是,在满足匹配条件的情况下尽可能的匹配更少的内容,这就是懒惰匹配。 上述例子对应的懒惰匹配规则为: a.*?b 如果用该表达式去匹配 aabab ,那么就会得到 aab 和 ab 这样两个匹配结
php 正则表达式贪婪模式,非贪婪模式
正则表达式匹配模式分为贪婪非贪婪两种。这两种模式是影响存在限定词修饰的子表达式的匹配行为。贪婪模式:是一次尽可能多的匹配结果集,直白的说就是匹配最长的符合表达式的串。 非贪婪模式:是一次匹配最短的符合表达式的串,如果有多个满足则匹配出多个限定词包括:{m,}, {m,n} ? * + * 零次或多次 + 一次或多次 ? 零次或一次举个例子: 字符串:aaababcab,要求匹配出axxb格式的字符