我是靠谱客的博主 可爱芹菜,最近开发中收集的这篇文章主要介绍php正则贪婪,PHP_正则表达式(regex) 贪婪模式、懒惰模式使用方法,正则表达式贪婪匹配模式,对 - phpStudy...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

正则表达式(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...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部