概述
正则表达式(regex) 贪婪模式、懒惰模式使用方法
正则表达式贪婪匹配模式,对于初学者,往往也很容易出错。有时候需要匹配一个段代码内容,发现匹配与想要不一致。发现原来,跟贪婪模式有关系。如下,我们看下例子:
什么是贪婪模式
字符串有: “
abd
bcd
”,我们想匹配…
内容,正则表达式如下:1、h3开头与结尾,”
待添加
” 都作为普通字符2、中间可以出现任意字符,个数可以是0个或者多个,正则表达式可以用:.* ,“.”代表任意字符,默认模式不匹配换行,”*” 重复前面字符0个或者多个。
3、最终我们考虑结果将是:”
.*
” ,也可以是:”.{0,}
” {}代表,重复前面指定个数字符,以下用到是,正则表达式调试工具截图,软件可以看:正则表达式工具推荐(学习工具、测试工具)2种结果都一样,这是我们不希望得到的,我们希望从左边开始,第一个出现,就开始匹配。以上这种模式,是贪婪模式,也是正则表达式默认以这个方法匹配。表示重复字符,操作符,默认都是贪婪模式,如:.*,.+,.{1,},.{0,} 都会匹配最大长度字符。正则表达式元字符,量词默认首先最大匹配字符串,这些量词有:+,*,?,{m,n} 。一开始匹配,就直接匹配到最长字符串。
什么是懒惰模式
既然上面几种,表示字符重复个数,元字符默认都是贪婪模式。如果,我们需要最小长度匹配,也就是懒惰模式,怎么样写正则表达式呢?其实,正则表达式里面通用方法是,在表示重复字符元字符,后面加多一个”?”字符即可。上面正则表达式可以写成:”
.*?
”,或者”.{0,}?
” 都可以。懒惰模式,就匹配到我们需要字符串了。
总结:正则表达式,表示字符串重复个数元字符,'?,+,*,{}' 默认都会选择贪婪模式,会最大长度匹配字符串,而要切换到懒惰模式,就只是在该元字符,后面加多一个”?” 即可切换到非贪婪模式(懒惰模式)。相关阅读:
C#实现简单合并word文档的方法
Oracle中rank,over partition函数的使用方法
Android编程之页面切换测试实例
java中关于文本文件的读写方法实例总结
c# yield提高代码性能和可读性
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
Android开发笔记之: 数据存储方式详解
解析Java的JNI编程中的对象引用与内存泄漏问题
做web开发 先学JavaScript
Win10系统下找不到无线网络设置怎么办?Win10系统下找不到无线网络设置的解决方法
解决Alamofire库在iOS7下设置Head无效的问题
PHP Curl出现403错误的解决办法
WIN8系统怎样窗口化查看图片?
jquery日历控件实现方法分享
最后
以上就是可爱芹菜为你收集整理的php正则贪婪,PHP_正则表达式(regex) 贪婪模式、懒惰模式使用方法,正则表达式贪婪匹配模式,对 - phpStudy...的全部内容,希望文章能够帮你解决php正则贪婪,PHP_正则表达式(regex) 贪婪模式、懒惰模式使用方法,正则表达式贪婪匹配模式,对 - phpStudy...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复