php正则表达式—贪婪模式(或+)与懒惰模式(?或+?)的应用

php中文网
发布: 2016-08-08 09:22:13
原创
1387人浏览过

<pre class="brush:php;toolbar:false;"courier new',courier,宋体,monospace,'Microsoft YaHei'; white-space:pre-wrap; word-wrap:break-word; color:rgb(51,51,51); line-height:24px; background-color:rgb(243,255,236)"><span></span><pre class="brush:php;toolbar:false;"courier new',courier,宋体,monospace,'Microsoft YaHei'; white-space:pre-wrap; word-wrap:break-word; color:rgb(51,51,51); line-height:24px; background-color:rgb(243,255,236)"><span>.表示除\n之外的任意字符;
*表示匹配0-无穷;
&#43;表示匹配1-无穷;</span>
登录后复制
<span>.* — 表示匹配0个或多个处换行符以外的字符;</span>
登录后复制
<span>.&#43; — 表示</span><span>匹配1个或多个处换行符以外的字符;</span>
登录后复制
<span></span>
登录后复制
<span></span>
后边没有?时表示贪婪模式(非懒惰模式);
登录后复制
<span>后边多一个?表示懒惰模式;</span>
登录后复制
<span>?必须跟在*或者&#43;后边用;
如:@@##@@
如果用正则匹配src中内容非懒惰模式匹配
src=".*"
匹配结果是:src="test.jpg" width="60" height="80"
意思是从="往后匹配,直到最后一个"匹配结束

懒惰模式正则:
src=".*?"
结果:src="test.jpg"
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。</span>
登录后复制
<span></span>
登录后复制
<span>在懒惰模式的正则(.*?或.&#43;?)应用中会出现一种特殊的情况,</span>
登录后复制
如:<{  if  $test == "test"<span></span>}> 我是测试数据<{  /if  }>
登录后复制
<span></span>
如果使用懒惰模式的正则匹配<{和}>里面的内容(当<{和}>的内侧都存在空格,并且这个空格可有可无时),
登录后复制
我们一般这样写正则:
登录后复制
<span>'/<\{\s*if\s*(.&#43;?)</span><span>\s*</span><span>\}</span><span>>(.&#43;?)<\{\s*\/if\s*\}>/ies'
</span>
登录后复制
<span>特别注意其中有颜色的部分,尤其是绿色的部分。当懒惰正则后面紧跟着一个用*修饰的原子时,</span>
登录后复制
<span>如果在</span><span>}>前面存在“可用绿色部分(贪婪)匹配的内容”时,它会以绿色部分匹配到的内容为懒惰模式</span>
登录后复制
<span>的匹配结束点,匹配到这里后就结束匹配。</span>
登录后复制
<span></span>
如果在}>前面不存在“可用绿色部分(贪婪)匹配的内容”时,它会以绿色部分后面紧跟的一个原子(黄色部分)
登录后复制
<span></span>
<span></span>
为懒惰模式<span>的匹配结束点,匹配到这里后就结束匹配。</span>
登录后复制

登录后复制
<span>关于“贪婪模式”和“懒惰模式”,可参考博文“php正则表达式—修正模式”</span>
登录后复制
<span></span>
登录后复制

以上就介绍了php正则表达式—贪婪模式(或+)与懒惰模式(?或+?)的应用,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

php正则表达式—贪婪模式(或+)与懒惰模式(?或+?)的应用
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号