下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深化理解JS正则表达式-分组_ 之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今日我又遇到了一个坑,可能是自己不够细心的缘由吧,今日就着重和大家分享一下javascript正则表达式中的分组。假如你对JS正则表达式不够理解 可以点击这里了解更多。 分组在正则中用的还是比较广的,我所理解的分组 就是一对括号() ,每一对括号 就代表了一个分组,分组可以分为: 捕获性分组 非捕获性分组 捕获性分组 捕获性分组会在 比如 match exec这样的函数中以其次项,第三项的形式得到相应分组的结果。先来看一个例子吧 var reg = /test(d+)/; var str =
2、 new test001 test002; console.log(str.match(reg);/test001, 001, index: 4, input: new test001 test002 代码中 (d+)是一个分组(有些人也叫他子模式),但是表示的都是同一个意思,上面的例子中 test001是完全匹配的结果,然而 分组的匹配是从整个完全匹配结果(也就是test001)中来查找与子模式d+匹配的字符,这里明显是 001.但是今日遇到的状况是这样的 var reg = /test(d)+/; var str = new test001 test002; console.log(str
3、.match(reg);/test001, 1, index: 4, input: new test001 test002 不同之处就是 (d+) 改为了 (d)+ ,整个匹配结果还是 test001 但是第一个分组匹配的结果却不同。咱们慢慢来分析他们的区分 (d+) 这整个是一个分组的状况,由于 默认状况下 匹配模式都是贪欲模式 也就是说尽可能多的去匹配全部d+ 匹配到的结果 是 001 然后 外面添加了一对括号 也就是一个分组,这样第一个分组中匹配的结果就是 001.再来看其次个例子中的 (d)+ 同样这也是一个贪欲模式 首先会先匹配0然后后面是0 也会匹配到 最终是1 同样也匹配到 到此
4、 匹配结束看起来跟第一个例子中的匹配没什么区分,但是这里的 分组(d)表示 匹配单个数字,根据我之前的理解是0 但这种理解是错误的。由于整个匹配是贪欲模式,尽可能多的去匹配分组中的 (d) 就会捕获 最终一次匹配到的结果 1,假如是非贪欲模式 那就会尽可能少的去匹配 var reg = /test(d)+?/; var str = new test001 test002; console.log(str.match(reg);/test001, 0, index: 4, input: new test001 test002 这样(d)匹配结果就是0了,虽然后面还有能够匹配到的结果,但是这里是尽
5、可能少的去匹配 非捕获性分组 非捕获性分组也就是 有些地方需要用到一对括号,但是又不想让他成为一个捕获性分组也就是不想让这个分组被类似 macth exec 这样的函数所猎取到通常在括号内部的前面加上?: 也就是 (?:pattern)这样就变成了一个非捕获性分组, var reg = /test(?:d)+/; var str = new test001 test002; console.log(str.match(reg);/test001, index: 4, input: new test001 test002 这样 match的结果中就不会消失分组匹配到的内容了 也就是少了 其次项的 1. 这篇文章着重说明 (d+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026厦门银行三明分行社会招聘考试参考试题及答案解析
- 2026湖北武汉市华中农业大学韩文元课题组诚聘博士后笔试模拟试题及答案解析
- 2026云南怒江州贡山县医疗保障局选聘医疗保障义务社会监督员10人考试备考题库及答案解析
- 2026广西崇左市江州区消防救援大队招聘财务会计1人考试备考题库及答案解析
- 2026广东清远市佛冈县石角镇招聘专职消防安全监管员2人考试备考题库及答案解析
- 2026内蒙古民族大学招聘银龄教师17人考试参考题库及答案解析
- 2026安徽消防中控员考试参考试题及答案解析
- 2026年温医大眼视光干细胞生物医学与生物材料工程研究组招聘备考题库及1套完整答案详解
- 南京古生物所非在编项目聘用人员(劳务派遣)招聘备考题库(2025年第18期)及参考答案详解一套
- 中国支付清算协会2026年度公开招聘备考题库含答案详解
- 2626《药事管理与法规》国家开放大学期末考试题库
- 合资船舶合同范本
- 2025年云南昆明巫家坝建设发展有限责任公司及下属公司第四季度社会招聘31人笔试参考题库附带答案详解(3卷)
- 2026年湖南化工职业技术学院单招职业技能考试题库含答案详解
- 食材配送公司管理制度(3篇)
- 供销合同示范文本
- 2024年供应链运营1+X职业技能等级证书中级考试(含答案解析)
- 《分布式光伏发电开发建设管理办法》问答(2025年版)
- 国家金融监督管理总局真题面试题及答案
- 大型商场顾客满意度调查报告
- 落地式脚手架拆除安全专项施工方案
评论
0/150
提交评论