位置: 编程技术 - 正文

深入理解JS正则表达式---分组(js中的正则表达式的例子)

编辑:rootadmin

推荐整理分享深入理解JS正则表达式---分组(js中的正则表达式的例子),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解js正则表达式,深入理解js正则是什么,js正则用法,js正则表达式详解,js正则用法,深入理解js正则是什么,js正则用法,深入理解js正则是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

深入理解JS正则表达式---分组

之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达式中的分组。如果你对JS正则表达式不够理解 可以点击这里了解更多。

分组在正则中用的还是比较广的,我所理解的分组 就是一对括号() ,每一对括号 就代表了一个分组,分组可以分为:

&#;捕获性分组&#;非捕获性分组

捕获性分组

捕获性分组会在 比如 match exec这样的函数中以第二项,第三项的形式得到相应分组的结果。先来看一个例子吧

代码中 (d+)是一个分组(有些人也叫他子模式),但是表示的都是同一个意思,上面的例子中 test是完全匹配的结果,然而 分组的匹配是从整个完全匹配结果(也就是test)中来查找与子模式d+匹配的字符,这里显然是 .但是今天遇到的情况是这样的

深入理解JS正则表达式---分组(js中的正则表达式的例子)

不同之处就是 (d+) 改为了 (d)+ ,整个匹配结果还是 test 但是第一个分组匹配的结果却不同。咱们慢慢来分析他们的区别

(d+) 这整个是一个分组的情况,由于 默认情况下 匹配模式都是贪婪模式 也就是说尽可能多的去匹配所有d+ 匹配到的结果 是 然后 外面添加了一对括号 也就是一个分组,这样第一个分组中匹配的结果就是 .再来看第二个例子中的 (d)+ 同样这也是一个贪婪模式 首先会先匹配0然后后面是0 也会匹配到 最后是1 同样也匹配到 到此 匹配结束看起来跟第一个例子中的匹配没什么区别,但是这里的 分组(d)表示 匹配单个数字,按照我之前的理解是0 但这种理解是错误的。由于整个匹配是贪婪模式,尽可能多的去匹配分组中的 (d) 就会捕获 最后一次匹配到的结果 1,如果是非贪婪模式 那就会尽可能少的去匹配

这样(d)匹配结果就是0了,虽然后面还有能够匹配到的结果,但是这里是尽可能少的去匹配

非捕获性分组

非捕获性分组也就是 有些地方需要用到一对括号,但是又不想让他成为一个捕获性分组也就是不想让这个分组被类似 macth exec 这样的函数所获取到通常在括号内部的前面加上&#;: 也就是 (&#;:pattern)这样就变成了一个非捕获性分组,

这样 match的结果中就不会出现分组匹配到的内容了 也就是少了 第二项的 1.

这篇文章着重说明 (d+)和 (d)+的区别,也是我今天踩到的坑,若有错误之处,欢迎指正。

以上这篇深入理解JS正则表达式---分组就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

ECMAScript6快速入手攻略 简介ECMAScript6是JavaScript的下一个标准,正处在快速开发之中,ECMAScript6的目标,是使得JavaScript可以用来编写复杂的应用程序、函数库和代码的自动生成

JavaScript的==运算详解 大家知道,JavaScript中的==是一种比较复杂运算,它的运算规则很奇怪,很容易让人犯错,从而成为JavaScript中最糟糕的特性之一。在仔细阅读ECMAScript规范

Javascript基础学习笔记(菜鸟必看篇) 什么是变量?变量是用于存储信息的容器变量的声明语法:var变量名变量名=值;变量要先声明再赋值变量可以重复赋值变量的命名规则变量必须以字母开

标签: js中的正则表达式的例子

本文链接地址:https://www.jiuchutong.com/biancheng/373554.html 转载请保留说明!

上一篇:javascript运算符——位运算符全面介绍(JavaScript运算符中谁拥有最高优先级)

下一篇:ECMAScript6快速入手攻略(ecmascript5)

  • 小规模纳税人的企业所得税税率
  • 如何分辨海关完税凭证的真假?
  • 价内税有哪些税种
  • 长期股权投资在哪个报表里
  • 一般纳税人附加税优惠政策2023
  • 公司支付宝收款二维码怎么弄
  • 不超45万是含税还是不含税
  • 做账一定要银行对账单吗
  • 建筑工地加油计入什么科目
  • 做账要不要入库单和出库单
  • 本期准予抵减税额怎么算
  • 资产负债表各项目的填列依据是
  • 财政票据可以抵税吗
  • 贷款损失准备金怎么计算
  • 资本化研发费用在本年的摊销
  • 现金折扣要扣除折扣金额入账吗
  • 单位起诉员工赔偿算劳动争议
  • 自创商誉企业所得税可以扣除吗
  • 税款滞纳金可以退吗
  • 待抵扣税费
  • 主营业务收入会计分录怎样写
  • 工商营业年报怎么做
  • 融资租赁哪些项目可以增值税抵扣
  • 软件开发公司怎么做账
  • php封装api
  • 企业自持商品住房定义
  • nwtray.exe - nwtray是什么进程 作用是什么
  • 企业出租房屋怎样报税
  • js日期字符串转换为指定格式的日期
  • 一般纳税人增值税减免政策2023
  • 伯里圣埃德蒙兹的人口
  • framework怎么更新
  • 预算周转金会计处理怎么做
  • 最详细、最完整的相机标定讲解
  • vue遇到的问题和解决方法
  • 发票作废申请书模板
  • 一般纳税人怎么申报增值税
  • 一般纳税人开发票给小规模纳税人
  • 服务型企业交税再返税
  • 以前年度损益调整是什么意思
  • php指定域名访问
  • 会议费可以开餐费吗
  • 管理费用属于产品成本么
  • 疫情期间提涨薪合适吗
  • 产品广告费属于什么会计科目类别
  • 经营性流动资产减去经营性流动负债
  • 福州锦元房地产开发有限
  • 合作研究开发项目的合同
  • 保险公司收车船税返还手续费犯罪
  • 工业企业辅助生产费用的分配方法
  • Linux下安装mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
  • winXP系统截图
  • Windows Server 2008故障转移群集简介
  • 微软官方操作系统叫什么
  • bios设置从光驱启动优先,可是启动不了
  • windows xp无法更改密码
  • xp系统设置共享显存
  • fpt.exe
  • 系统升级后c盘空间小了
  • Win7系统如何打开摄像头
  • jquery中attr和prop
  • firefox document
  • node.js使用方法
  • unity读取fbx文件
  • jQuery tagsinput在h5邮件客户端中应用详解
  • node ffi
  • jQuery实现可以控制图片旋转角度效果(附demo源码下载)
  • 置顶什么意思啊
  • android software
  • web.py 十分钟创建简易博客实现代码
  • 宾馆税务
  • 报价单盖什么公章
  • 天津电子税务局官网登录入口网页版
  • 国家税务局总局咨询平台
  • 重庆税务总局重庆电子税务局
  • 天津住房公积金管理中心官网
  • 民族贸易产生的原因
  • 办理养殖照税务登记证
  • 残疾人就业税收优惠政策2021
  • 小店区税务大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设