php正则贪婪,PHP_正则表达式(regex) 贪婪模式、懒惰模式使用方法,正则表达式贪婪匹配模式,对 - phpStudy...

本文介绍了正则表达式中的贪婪模式和懒惰模式,通过实例说明了如何避免默认贪婪匹配带来的问题,并教会读者如何通过添加问号实现懒惰模式以达到精确匹配。重点在于理解量词的使用及其模式转换技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式(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日历控件实现方法分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值