本文实例分析了js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法。分享给大家供大家参考,具体如下:

最近在阅读RequireJS 2.1.15源码,源码开始处定义了一系列的变量,有4个正则表达式:
var commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, jsSuffixRegExp = /\.js$/, currDirRegExp = /^\.\//;
commentRegExp正则用来匹配JavaScript代码中的注释,/m的用法可以参考这篇文章:https://www./article/101399.htm,/g的用法参考这篇文章:https://www./article/101408.htm。commentRegExp中的*?这种用法之前没有见过,觉得很奇怪,因为*在正则表达式中代表0个或任意多个,?代表0个或1个,刚开始觉得*?这种写法很多余。请教同事才知道,*?这种写法是懒惰匹配。
alert(/abc([\w]*)/mg.exec("abc1abc2")[0]);//abc1abc2
alert(/abc([\w]*?)/mg.exec("abc1abc2")[0]);//abc
通过下面这段代码可以看出:最长匹配和最短匹配的差别通过这段代码可以看出:最长匹配和最短匹配的差别,一个匹配尽可能多的字符,一个匹配尽可能少的字符。一般正则表达式引擎默认都是最长匹配的,如果我们想要最短匹配,那么可以在数量修饰符后面添加一个?变成最短匹配。
/***注释1****/ var name = "aty"; /***注释2****/ var name = "aty";
通过上面这段代码可以知道,为啥requirejs匹配javascript注释要采用*?这种最短匹配模式了吧。如果我们要删除所有注释,那么应该采用最短匹配,否则var name="aty";这段代码会被替换掉。
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# js
# 正则表达式
# 最长匹配
# 贪婪匹配
# 最短匹配
# 懒惰匹配
# JS正则表达式学习之贪婪和非贪婪模式实例总结
# js正则表达式惰性匹配和贪婪匹配用法分析
# JavaScript正则表达式的贪婪匹配和非贪婪匹配
# 最短
# 这段
# 可以看出
# 这篇文章
# 都是
# 操作技巧
# 相关内容
# 多个
# 遍历
# 感兴趣
# 数据结构
# 才知道
# 给大家
# 刚开始
# 很奇怪
# 更多关于
# 所述
# 没有见过
# 程序设计
相关文章:
免费网站制作appp,免费制作app哪个平台好?
招贴海报怎么做,什么是海报招贴?
如何通过建站之星自助学习解决操作问题?
如何快速搭建高效WAP手机网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何用wdcp快速搭建高效网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
如何快速搭建二级域名独立网站?
如何在阿里云域名上完成建站全流程?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
营销式网站制作方案,销售哪个网站招聘效果最好?
建站之星官网登录失败?如何快速解决?
如何选择最佳自助建站系统?快速指南解析优劣
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
做企业网站制作流程,企业网站制作基本流程有哪些?
高防服务器租用指南:配置选择与快速部署攻略
建站org新手必看:2024最新搭建流程与模板选择技巧
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
建站三合一如何选?哪家性价比更高?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
,sp开头的版面叫什么?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何选择高效便捷的WAP商城建站系统?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何通过山东自助建站平台快速注册域名?
香港服务器部署网站为何提示未备案?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何零基础在云服务器搭建WordPress站点?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
公司网站制作价格怎么算,公司办个官网需要多少钱?
企业微网站怎么做,公司网站和公众号有什么区别?
香港服务器选型指南:免备案配置与高效建站方案解析
如何选择香港主机高效搭建外贸独立站?
利用JavaScript实现拖拽改变元素大小
如何基于PHP生成高效IDC网络公司建站源码?
建站之星展会模板:智能建站与自助搭建高效解决方案
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
宁波自助建站系统如何快速打造专业企业网站?
如何通过虚拟机搭建网站?详细步骤解析
建站主机选购指南与交易推荐:核心配置解析
如何在局域网内绑定自建网站域名?
视频网站制作教程,怎么样制作优酷网的小视频?
制作网站的模板软件,网站怎么建设?
,制作一个手机app网站要多少钱?
湖北网站制作公司有哪些,湖北清能集团官网?
如何在阿里云ECS服务器部署织梦CMS网站?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
*请认真填写需求信息,我们会在24小时内与您取得联系。