JavaScript正则表达式的贪婪匹配和非贪婪匹配

 更新时间:2017年09月05日 09:35:47   作者:白夜行1994  
所谓贪婪匹配就是匹配重复字符是尽可能多的匹配,非贪婪匹配就是尽可能少的匹配,下面通过一个例子给大家分享JavaScript正则表达式的贪婪匹配和非贪婪匹配,感兴趣的朋友参考下吧

所谓贪婪匹配就是匹配重复字符是尽可能多的匹配,比如:

"aaaaa".match(/a+/); 
//["aaaaa", index: 0, input: "aaaaa"] 

非贪婪匹配就是尽可能少的匹配,用法就是在量词后面加上一个“?”,比如:

"aaaaa".match(/a+?/); 
//["a", index: 0, input: "aaaaa"] 

但是非贪婪匹配有时候和我们期待的并不一样,比如:

"aaab".match(/a+b/); 
["aaab", index: 0, input: "aaab"] 
"aaab".match(/a+?b/); 
["aaab", index: 0, input: "aaab"] 

在我们期待的情况下非贪婪匹配应该是匹配"ab"才对但是结果却和贪婪匹配时一样的。
在《权威指南》中有这么一句话:正则表达式的模式匹配总是会寻找字符串中第一个可能匹配的位置。
个人对这句话的理解是:上例中正则表达式会先找到第一个字符a,因为a后面连接的字符有可能形成匹配,这是正则表达式就认定这个位置的字符了,然后开始往后进行匹配,如果像第一个例子中那样非贪婪匹配,匹配到第一个a就结束了,但是第二个例子中还要匹配b所以不得不接着往下匹配直到匹配到b为止结束。

总结

以上所述是小编给大家介绍的JavaScript正则表达式的贪婪匹配和非贪婪匹配,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 利用jsPDF实现将图片转为pdf

    利用jsPDF实现将图片转为pdf

    这篇文章主要为大家详细介绍了如何利用jsPDF实现将图片转为pdf的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-08-08
  • 前端开发必备小技巧之前端代码规范Vue篇

    前端开发必备小技巧之前端代码规范Vue篇

    这篇文章主要介绍了前端代码规范的重要性以及Vue项目的编码规范,包括组件规范、模板规范、指令规范、标签顺序规范、必须为v-for设置键值、v-show与v-if选择、script标签内部结构顺序、VueRouter规范等具体内容,需要的朋友可以参考下
    2025-01-01
  • js数组去重九种方式以及详解

    js数组去重九种方式以及详解

    这篇文章主要给大家介绍了关于js数组去重九种方式以及详解的相关资料,js数组去重是比较常见的数组操作方式之一,文中介绍了九种方法,需要的朋友可以参考下
    2023-09-09
  • javascript代码简写的几种常用方式汇总

    javascript代码简写的几种常用方式汇总

    任何一种编程语言的简写小技巧都是为了帮助你写出更简洁、更完善的代码,让你用更少的编码实现你的需求,这篇文章主要给大家介绍了关于javascript代码简写的几种常用方式,需要的朋友可以参考下
    2021-08-08
  • 小程序开发基础之view视图容器

    小程序开发基础之view视图容器

    这篇文章主要介绍了小程序开发基础之view视图容器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 基于JavaScript实现全选、不选和反选效果

    基于JavaScript实现全选、不选和反选效果

    这篇文章主要为大家详细介绍了基于JavaScript实现全选、不选和反选效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • JavaScript过滤字符串中的中文与空格方法汇总

    JavaScript过滤字符串中的中文与空格方法汇总

    这篇文章主要介绍了JavaScript过滤字符串中的中文与空格方法汇总 的相关资料,需要的朋友可以参考下
    2016-03-03
  • JavaScript动态添加css样式和script标签

    JavaScript动态添加css样式和script标签

    这篇文章主要介绍了JavaScript动态添加css样式和script标签的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • js实现九宫格的随机颜色跳转

    js实现九宫格的随机颜色跳转

    本篇文章主要介绍了js实现九宫格的随机颜色跳转的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 动态加载、移除js/css文件的示例代码

    动态加载、移除js/css文件的示例代码

    本文简单介绍动态加载、移除、替换js/css文件的示例代码,代码简单易懂,非常不错,具有参考借鉴加载,需要的朋友参考下吧
    2018-03-03

最新评论