正则表达式:贪婪模式与懒惰模式
一 语法区别
贪婪模式与懒惰模式的语法区别在于重复限定修饰符的后面是否有问号,有的话就是懒惰模式,否则就是贪婪模式。
二 例子
他所说的应该是贪婪量词,是先吃尽所有字符,然后再一个一个地吐出来,直接匹配成功为止
而懒惰量词,是从头开始一个字符一个字符地吃,直接匹配成功为止
我想其意思应该是贫婪是逐渐向前匹配,而懒惰是向后慢慢匹配吧
贪婪和懒惰的匹配过程是这样的:
懒惰是从左边一个一个地吃直到匹配为止,不加 ? 的是一口吃掉整个字符串,然后从最后一个一个地吐出来直到匹配为止
字符串
a=b=b===
a.*b 将匹配满足条件最长的字符串 a=b=b
工作方式:
首先将:a=b=b=== 全部吃掉,从右边一个一个地吐出来
- a=b=b=== 不匹配,吐出一字符
- a=b=b== 不匹配,再吐出一字符
- a=b=b= 不匹配,再吐出一字符
- a=b=b 匹配了,结束。如果再不匹配继续吐,直到没有字符了,匹配失败
a.*? 将匹配满足条件最短的字符串 a=====b
工作方式:
从左边一个一个地吃掉字符
- a 不能匹配表达式,继续吃
- a= 不能匹配表达式,继续吃
- a== 不能匹配表达式,继续吃
- a=== 不能匹配表达式,继续吃
- a==== 不能匹配表达式,继续吃
- a===== 不能匹配表达式,继续吃
- a=====b 呵呵,终于能匹配表达式了,匹配结束,匹配位置留于字符 b 后面,继续其他的匹配。如果不能匹配则一个一个地吃掉整个字符串直到吃完为止若还没有匹配则匹配失败。
3 参考URL:http://topic.csdn.net/u/20090917/17/ce6ec06c-2a3e-422f-88b8-40946e558c26.html
正则表达式:贪婪模式与懒惰模式相关推荐
- 正则表达式贪婪模式、懒惰模式与独占模式浅析
正则表达式贪婪模式.懒惰模式与独占模式浅析 一.正则表达式引擎: 正则表达式的执行,是由正则表达式引擎编译执行的,正则表达式引擎分为DFA(Deterministic finite automaton ...
- 【python之re模块学习第2天】正则表达式的应用:贪婪模式与懒惰模式
目录 1 模式概述 2 例子 2.1 贪婪模式例子 2.2 懒惰模式例子 2.3 对比 3 总结 参考文献 1 模式概述 贪婪模式:默认情况下,匹配重复的元字符总是尽可能多地向后匹配内容. 懒惰模式: ...
- (JavaScript)贪婪模式和非贪婪模式(懒惰模式)
文章目录 概念 一.贪婪模式与非贪婪模式的内容 二.代码 1.贪婪模式 2.非贪婪模式(懒惰模式) 概念 贪婪和非贪婪(懒惰): JavaScript中正则表达式默认是贪婪的,改成非贪 ...
- 【PYTHON】正则匹配的贪婪模式和懒惰模式
在PYTHON使用正正则表达式匹配爬虫爬取下来的内容时经常使用两种模式:贪婪模式.懒惰模式 贪婪模式需要尽可能多的去匹配内容,其常用的表达式:.*[.表示识别任意除了\n外的字符,*表示识别0~n次: ...
- 正则表达式-贪婪匹配与懒惰匹配之获取短信验证码
今天由于一个正则的关系,涉及到了贪婪匹配和懒惰匹配,因为对正则表达不是很懂,所以做个笔记 以下是获取验证码的方法 /*** 从短信内容中获取验证码* @param src* @param startM ...
- 正则表达式三种模式:贪婪模式、懒惰模式、独占模式
http://www.cnblogs.com/study-everyday/p/7426862.html#autoid-0-0-0 贪婪 懒惰 独占 X? X?? X?+ X* X*? X*+ X+ ...
- php正则 贪婪模式与懒惰模式
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符.考虑这个表达式:a.*b,它将会匹配最长的以a开始,以b结束的字符串.如果用它来搜索 ...
- js正则贪婪模式_C# 正则表达式贪婪模式案例
案例一. 如 "acbacb" 正则 "a.*?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ...
- php懒惰模式,PHP正则贪婪/懒惰匹配模式
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符.例如以下表达式将匹配以a开始,以b结束的最长字符串: a.*b 如果用来搜索"aa ...
最新文章
- Qt学习笔记之QByteArry
- [android] No resource found that matches the given name 'Theme.AppCompat.Light'
- spark shell 删除失效_Spark任务提交源码解析
- 2引擎帮助文档_Simcenter Amesim 16液压部分帮助文档中英文对照(2)
- vuex语法精简(方便开发查阅)
- python 二叉树
- 百度编辑器ueditor 字符限制
- php错误日志框架,错误与日志 - Laravel - 为 WEB 艺术家创造的 PHP 框架。
- 【OpenCV学习笔记】【函数学习】十五(批量读入图片)
- mac系统如何修改默认打开方式
- Flex ANE介绍
- 【雷达与对抗】【2015】【部分源码】用于雷达成像与信道探测的FMCW信号
- 数据库大量数据操作中事务优化方案
- SpellBERT:预训练模型与中文拼写纠错
- 29.Android展示PDF文件
- 排列组合算法(全排列、全组合)
- 10.数据仓库搭建之DWD层搭建
- 《帝国时代IV》(Age of Empires IV)CODEX版切换简体中文界面和语音的方法 附中文语言和语音下载
- 何小鹏立了个马斯克都没做到的Flag
- web切图怎么做_web前端人员自行切图教程
热门文章
- LinuxZIP压缩和解压缩
- 盲盒包装流水线 (25 分) C语言
- 1.10 企业首席信息官CIO及其职责
- Centos7 二进制安装 Kubernetes 1.13
- 中大计算机考研复试刷人太狠,为何考研初试分数很高的人在复试中被刷?这4个致命失误你犯了?...
- Java 如何从一个 List 中随机获得元素
- ping通www.baidu.com的完整过程。
- 华为云 ModelArts——简单的机器学习 初体验
- MTBD 电影市场分析
- 一整套美团面经(给对象超用心整理的)