当正则表达式中包含重复元字符比如“*”、“+”,都会匹配尽可能多的字符,如“a.*b”,最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。

有时候我们希望尽可能少的匹配满足条件的字符,我们称为 懒惰匹配。只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。var patt=/a.*?b/g

var str="aabab"

console.log(str.match(patt))    //匹配到  aab 和  ab

*?:重复任意次,但是尽可能少的重复

+?:重复至少1次,,但是尽可能少的重复

??:重复0或者1次,,但是尽可能少的重复

{n,m}?:重复n-m次,但是尽可能少的重复var patt=/a.+?b/g

var str="aabab"

console.log(str.match(patt))   //匹配到aab

var patt=/a.??b/g

var str="aabbbab"

console.log(str.match(patt))   //匹配到aab 和 ab

php正则表达式懒惰匹配,正则表达式-贪婪与懒惰相关推荐

  1. java 正则 惰性匹配_js正则表达式惰性匹配和贪婪匹配用法分析

    本文实例讲述了js正则表达式惰性匹配和贪婪匹配用法.分享给大家供大家参考,具体如下: 在讲贪婪模式和惰性模式之前,先回顾一下JS正则基础: 写法基础: ①不需要双引号,直接用//包含 => /w ...

  2. php正则表达式非贪婪,php正则表达式中的非贪婪模式匹配

    php正则表达式中的非贪婪模式匹配 一般情况下,正则表达式的匹配是贪婪模式的,比如下面这个例子: 字符串:....src="http://www.bloghome.cn/1.mp3" ...

  3. Python:利用原生函数count或正则表达式compile、findall、finditer实现匹配统计(包括模糊匹配的贪婪匹配、懒惰匹配)

    Python:利用原生函数count或正则表达式compile.findall.finditer实现匹配统计(包括模糊匹配的贪婪匹配.懒惰匹配) 目录 利用原生函数count或正则表达式compile ...

  4. 正则表达式的贪婪匹配与懒惰匹配

    今天用到正则表达式的懒惰匹配,由于开始不是很了解,所以一个问题纠结了一天,真正了解了就不难了. 例:一个字符串"abcdakdjd" regex="a.*?d" ...

  5. 正则表达式中的贪婪匹配与懒惰匹配

    正则表达式中贪婪匹配与懒惰匹配的概念 贪婪匹配 匹配尽可能多的字符 当正则表达式中包含能接受重复的限定符时,默认会尽可能多的去匹配更多的字符,这种匹配模式叫做贪婪匹配 懒惰匹配 匹配尽可能少的字符 在 ...

  6. 正则表达式-贪婪匹配与懒惰匹配之获取短信验证码

    今天由于一个正则的关系,涉及到了贪婪匹配和懒惰匹配,因为对正则表达不是很懂,所以做个笔记 以下是获取验证码的方法 /*** 从短信内容中获取验证码* @param src* @param startM ...

  7. 正则表达式之贪婪匹配和懒惰匹配

    例子:匹配 HTML 标签 贪婪匹配: <.+> 懒惰匹配: <.+?> 我们发现第二种 懒惰匹配才是我们想要的结果 字符" ? " : 如果紧跟在任何量词 ...

  8. 正则表达式贪婪与懒惰

    当正则表达式中包含能接受重复的限定符(指定数量的代码,例如*,{5,12}等)时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符.考虑这个表达式:a.*b,它将会匹配最长的以a开始 ...

  9. 正则表达式学习笔记011--贪婪和懒惰的匹配

    正则表达式学习笔记011--贪婪和懒惰的匹配 交流群1:251572072 交流群2:170933152 1.什么是贪婪匹配 从字面上理解:贪心,不满足,有多少要多少 比如正则里也一样:.*,.+,{ ...

最新文章

  1. 2022-2028年中国TFT玻璃行业市场研究及前瞻分析报告
  2. 修改 Docker 的默认存储路径
  3. 【程序设计】模块化的注意事项和不良实践
  4. 11muduo_base库源码分析(二)
  5. SQLServer字符串函数
  6. 使用ping方法,依据TTL值,探测对方主机操作系统
  7. java dump分析工具_java线程dump分析工具
  8. 老男孩Linux笔记,运维/后端/服务器领域
  9. 服务器返回状态码说明,关于服务器返回的十四种常见HTTP状态码详解
  10. [ExtJs6]随记--去除extjs trial水印
  11. 二、C++反作弊对抗实战 (进阶篇 —— 10.利用硬件断点 + 结构化异常VEH HOOK与对抗方法)
  12. android 判断是否是标点符号_如何“专业”的定义Android的string资源中标点符号及特殊字符...
  13. win10误删的注册表能还原吗_win10自带注册表恢复方法 win10注册表误删如何修复...
  14. r语言中大小写c的区别吗,R语言和C语言哪个难?
  15. google网盘 百度网盘文件互传
  16. 新浪微博开发平台试用
  17. Java可以hook微信吗,Hook实现Android 微信、陌陌 、探探位置模拟(附源码下载)
  18. 取消UL和OL符号以及padding和margin后恢复默认值的CSS
  19. 端午节书法作品楷书内容_端午节书法作品楷书四字柳体
  20. 中国地质调查局:汶川地震原因已有初步结论

热门文章

  1. 5.Flink对接Kafka入门
  2. Android 安全机制
  3. matlab圈和叉,画圈圈和画叉叉的区别
  4. 什么是无极性电解电容?
  5. C++中对字符串的操作
  6. 关闭搜狐微门户弹窗终极方法
  7. 图像处理技术及相应C++代码
  8. R语言读写中文编码方式
  9. 技术宅学会几招FFmpeg
  10. 菜鸟站长之家带你了解什么是百度SEO快排技术