为何(.*)和(.*?)匹配结果一样?

来源:3-6 查找所有匹配结果

no4990

2018-03-12 23:27

【为何(.*)和(.*?)匹配结果一样?】


我写的正则表达式:

$p = '/<li>(.*)<\/li>/';

也能正确输出结果,不是应该贪婪匹配的吗?


例如:<li></li>内容<li></li>

不是应该将下划线部分整体匹配吗?


写回答 关注

2回答

  • 慕莱坞0034921
    2018-03-13 14:11:36
    已采纳

    懒惰模式是在匹配最近的一个标志,贪婪模式是匹配到最远的一个标志。看你的代码因为$st中<li></li>和<li></li>有一个换行符的,所以正则表达式结果一样的,如果转为一行就不一样了。

    no4990

    谢谢,试了一下,确实是这样的。

    2018-03-13 18:32:39

    共 1 条回复 >

  • 坐不住的雨伞
    2020-01-20 17:09:00

    http://img2.mukewang.com/5e256df70001590f04890566.jpg

    好像就是网页上的输出没显示

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181727 学习 · 2575 问题

查看课程

相似问题