本文实例讲述了js正则表达式惰性匹配和贪婪匹配用法。分享给大家供大家参考,具体如下:

在讲贪婪模式和惰性模式之前,先回顾一下JS正则基础:
写法基础:
①不需要双引号,直接用//包含 => /wehfwue123123/.test();
②反斜杠\表示转义 =>/\.jpg$/
③用法基础:.test(str);
语法:
①锚点类
/^a/=>以"a"开头
/\.jpg$/=>以".jpg"结尾
②字符类
[abc]:a或b或c
[0-9]:一个数字
[a-z]:一个字母
. :任意字符
③元字符
^:在[]里面用表示非,在[]外面用表示开头
\d:[0-9]
\s:空白符
\w:[A-Za-z0-9_]
\D:[^\d]-非数字
\S:非空白符
④量词
{m,n}:m到n次
元字符表示:
*:{0,}
?:{0,1}
+:{1,}
难点:贪婪模式/惰性模式
贪婪模式——在匹配成功的前提下,尽可能多的去匹配
惰性模式——在匹配成功的前提下,尽可能少的去匹配
解释一:码文并茂
使用正则表达式中的贪婪、惰性的量词可以控制表达式匹配过程,我们知道量词?、*、+的意义,可以指定相关模式出现的次数,默认的情况下我们使用的是贪婪量词,它的匹配过程是从整个字符串开始查看,如果不匹配就去掉最后一个,再看看是否匹配,如此循环一直到匹配或字符串空为止,如:
vars ="abbbaabbbaaabbb1234"; varre1=/.*bbb/g;//*是贪婪量词 re1.test(s);
这个匹配过程将从整个字符串开始:
re1.test("abbbaabbbaaabbb1234");//false ,则去掉最后一个字符4再继续
re1.test("abbbaabbbaaabbb123");//false ,则去掉最后一个字符3再继续
re1.test("abbbaabbbaaabbb12");//false ,则去掉最后一个字符2再继续
re1.test("abbbaabbbaaabbb1");//false ,则去掉最后一个字符1再继续
re1.test("abbbaabbbaaabbb");//true ,结束
在贪婪量词的后面加多一个?就变成了惰性量词,它的匹配过程相反,是从前面第一个开始,不匹配则加一个,如此循环直到字符串结束,以上面的为例子。
vars ="abbbaabbbaaabbb1234"; varre1=/.*?bbb/g;//*?是惰性量词 re1.test(s);
它的匹配过程如下:
re1.test("a");//false, 再加一个
re1.test("ab");//false, 再加一个
re1.test("abb");//false, 再加一个
re1.test("abbb");//true, 匹配了,保存这个结果,再从下一个开始
re1.test("a");//false, 再加一个
re1.test("aa");//false, 再加一个
re1.test("aab");//false, 再加一个
re1.test("aabb");//false, 再加一个
re1.test("aabbb");//true, 匹配了,保存这个结果,再从下一个开始
小结:
默认的贪婪匹配是从后往前匹配,最大长度的匹配,惰性匹配就是在量词后面加个?从字符串的前面开始匹配,最小长度的匹配
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# js
# 正则表达式
# 惰性匹配
# 贪婪匹配
# JavaScript惰性求值的一种实现方法示例
# JS设计模式之惰性模式(二)
# JavaScript学习笔记之惰性函数示例详解
# JS 学习总结之正则表达式的懒惰性和贪婪性
# JS优化与惰性载入函数实例分析
# JavaScript AJAX之惰性载入函数
# 利用函数的惰性载入提高javascript代码执行效率
# JavaScript 函数惰性载入的实现及其优点介绍
# 如何用JavaScript实现一个数组惰性求值库
# 再加
# 是从
# 加多
# 的是
# 不匹配
# 配了
# 操作技巧
# 前提下
# 相关内容
# 第一个
# 不需要
# 遍历
# 感兴趣
# 数据结构
# 给大家
# 更多关于
# 所述
# 再看看
# 程序设计
相关文章:
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
购物网站制作公司有哪些,哪个购物网站比较好?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
如何选择适合PHP云建站的开源框架?
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在阿里云虚拟服务器快速搭建网站?
C#怎么使用委托和事件 C# delegate与event编程方法
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
如何选择美橙互联多站合一建站方案?
临沂网站制作公司有哪些,临沂第四中学官网?
,石家庄四十八中学官网?
再谈Python中的字符串与字符编码(推荐)
,怎么在广州志愿者网站注册?
如何在香港免费服务器上快速搭建网站?
建站之星云端配置指南:模板选择与SEO优化一键生成
如何配置IIS站点权限与局域网访问?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何做静态网页,sublimetext3.0制作静态网页?
如何通过可视化优化提升建站效果?
如何在万网自助建站中设置域名及备案?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
建站之星导航如何优化提升用户体验?
如何获取PHP WAP自助建站系统源码?
济南专业网站制作公司,济南信息工程学校怎么样?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何选择高效可靠的多用户建站源码资源?
高防服务器租用指南:配置选择与快速部署攻略
定制建站是什么?如何实现个性化需求?
如何快速查询网址的建站时间与历史轨迹?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
如何在阿里云完成域名注册与建站?
如何在新浪SAE免费搭建个人博客?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
网站制作网站,深圳做网站哪家比较好?
网站制作员失业,怎样查看自己网站的注册者?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
网站代码制作软件有哪些,如何生成自己网站的代码?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
制作企业网站建设方案,怎样建设一个公司网站?
如何构建满足综合性能需求的优质建站方案?
英语简历制作免费网站推荐,如何将简历翻译成英文?
定制建站方案优化指南:企业官网开发与建站费用解析
网站按钮制作软件,如何实现网页中按钮的自动点击?
*请认真填写需求信息,我们会在24小时内与您取得联系。