>  기사  >  백엔드 개발  >  PHP 정규식 - 그리디 모드(또는 +) 및 게으른 모드(? 또는 +?) 적용

PHP 정규식 - 그리디 모드(또는 +) 및 게으른 모드(? 또는 +?) 적용

WBOY
WBOY원래의
2016-08-08 09:22:131229검색
.表示除\n之外的任意字符; *表示匹配0-无穷; +表示匹配1-无穷;.* — 表示匹配0个或多个处换行符以外的字符;.+ — 表示匹配1个或多个处换行符以外的字符;后边没有?时表示贪婪模式(非懒惰模式);后边多一个?表示懒惰模式;?必须跟在*或者+后边用; 如: 如果用正则匹配src中内容非懒惰模式匹配 src=".*" 匹配结果是:src="test.jpg" width="60" height="80" 意思是从="往后匹配,直到最后一个"匹配结束 懒惰模式正则: src=".*?" 结果:src="test.jpg" 因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。在懒惰模式的正则(.*?或.+?)应用中会出现一种特殊的情况,如:<{ if $test == "test"}> 我是测试数据<{ /if }>如果使用懒惰模式的正则匹配<{和}>里面的内容(当<{和}>的内侧都存在空格,并且这个空格可有可无时),我们一般这样写正则:'/<\{\s*if\s*(.+?)\s*\}>(.+?)<\{\s*\/if\s*\}>/ies' 特别注意其中有颜色的部分,尤其是绿色的部分。当懒惰正则后面紧跟着一个用*修饰的原子时,如果在}>前面存在“可用绿色部分(贪婪)匹配的内容”时,它会以绿色部分匹配到的内容为懒惰模式的匹配结束点,匹配到这里后就结束匹配。如果在}>前面不存在“可用绿色部分(贪婪)匹配的内容”时,它会以绿色部分后面紧跟的一个原子(黄色部分)为懒惰模式的匹配结束点,匹配到这里后就结束匹配。
关于“贪婪模式”和“懒惰模式”,可参考博文“php正则表达式—修正模式”

위 내용은 PHP 정규식의 적용인 탐욕 모드(또는 +)와 게으른 모드(? 또는 +?)를 소개하며 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.