全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析

本文实例分析了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正则表达式的贪婪匹配和非贪婪匹配  # 最短  # 这段  # 可以看出  # 这篇文章  # 都是  # 操作技巧  # 相关内容  # 多个  # 遍历  # 感兴趣  # 数据结构  # 才知道  # 给大家  # 刚开始  # 很奇怪  # 更多关于  # 所述  # 没有见过  # 程序设计 


相关文章: 如何用美橙互联一键搭建多站合一网站?  临沂网站制作企业,临沂第三中学官方网站?  黑客如何通过漏洞一步步攻陷网站服务器?  如何在Windows服务器上快速搭建网站?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  代刷网站制作软件,别人代刷火车票靠谱吗?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  制作营销网站公司,淘特是干什么用的?  如何在宝塔面板中创建新站点?  平台云上自助建站如何快速打造专业网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  简历在线制作网站免费,免费下载个人简历的网站是哪些?  一键网站制作软件,义乌购一件代发流程?  已有域名能否直接搭建网站?  如何选择CMS系统实现快速建站与SEO优化?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何高效配置IIS服务器搭建网站?  公司门户网站制作流程,华为官网怎么做?  如何使用Golang安装API文档生成工具_快速生成接口文档  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  焦点电影公司作品,电影焦点结局是什么?  如何打造高效商业网站?建站目的决定转化率  香港网站服务器数量如何影响SEO优化效果?  Python文件管理规范_工程实践说明【指导】  建站之家VIP精选网站模板与SEO优化教程整合指南  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何快速生成可下载的建站源码工具?  C++中引用和指针有什么区别?(代码说明)  如何在七牛云存储上搭建网站并设置自定义域名?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  移民网站制作流程,怎么看加拿大移民官网?  建站之星CMS五站合一模板配置与SEO优化指南  如何在腾讯云服务器上快速搭建个人网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  孙琪峥织梦建站教程如何优化数据库安全?  如何在橙子建站中快速调整背景颜色?  建站主机服务器选购指南:轻量应用与VPS配置解析  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何在建站之星网店版论坛获取技术支持?  如何快速重置建站主机并恢复默认配置?  如何用搬瓦工VPS快速搭建个人网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何在宝塔面板中修改默认建站目录?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何正确选择百度移动适配建站域名? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。