• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-23) 18次浏览 已收录 0个评论

.表示除\n之外的任意字符;*表示匹配0-无穷;+表示匹配1-无穷;

.* — 表示匹配0个或多个处换行符以外的字符;

.+ — 表示匹配1个或多个处换行符以外的字符;

后边没有?时表示贪婪模式(非懒惰模式);

后边多一个?表示懒惰模式;

?必须跟在*或者+后边用;如:如果用正则匹配src中内容非懒惰模式匹配src=”.*”匹配结果是:src=”test.jpg” width=”60″ height=”80″意思是从=”往后匹配,直到最后一个”匹配结束懒惰模式正则:src=”.*?”结果:src=”test.jpg”因为匹配到第一个”就结束了一次匹配。不会继续向后匹配。

在懒惰模式的正则(.*?或.+?)应用中会出现一种特殊的情况,

如:<{ if $test == "test"}> 我是测试数据

如果使用懒惰模式的正则匹配里面的内容(当的内侧都存在空格,并且这个空格可有可无时),

我们一般这样写正则:

‘/<\{\s*if\s*(.+?)\s*\}>(.+?)<\{\s~来1源gaodai#ma#com搞*代#码1网搞代gaodaima码*\/if\s*\}>/ies’

特别注意其中有颜色的部分,尤其是绿色的部分。当懒惰正则后面紧跟着一个用*修饰的原子时,

如果在}>前面存在“可用绿色部分(贪婪)匹配的内容”时,它会以绿色部分匹配到的内容为懒惰模式

的匹配结束点,匹配到这里后就结束匹配。

如果在}>前面不存在“可用绿色部分(贪婪)匹配的内容”时,它会以绿色部分后面紧跟的一个原子(黄色部分)

为懒惰模式的匹配结束点,匹配到这里后就结束匹配。

关于“贪婪模式”和“懒惰模式”,可参考博文“php正则表达式—修正模式”

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php正则表达式—贪婪模式(或+)与懒惰模式(?或+?)的应用
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址