正则表达式分组:
如果想匹配3个数字,正则表达式可以用如下写法:

\d{3}
以上代码使用重复量词可以匹配3位数字。
但是在实际应用中,往往需要重复多个字符,例如我想重复ab两个字符,使用以下代码就不合适了,代码如下:
ab{3}
以上正则表达式只能够重复3次b。
为了实现重复多个字符可以使用小括号来指定子表达式或者说分组来实现此功能,例如:
(ab){3}
上面的正则就可以重复ab了。
所谓的分组就是使用小括号将一些项包括起来,使其成为独立的逻辑域,那么就可以像处理一个独立单元一样去处理小括号的内容。
下面看一段代码实例:
(\d{1,3}\.){3}\d{1,3}
上面是一个简单的ip匹配正则表达式。由小括号包裹的内容会被作为一个独立的逻辑域进行操作。
分组的作用:
在正则表达式中,分组具有举足轻重的作用,下面就简单对它的功能做一下简单的介绍。
一.起到原始的分组作用:
把单独的项目进行分组,以便合成子表达式,这样就可以像处理一个单独的字符那样,对其应用|、+、*或者?等元字符来操作它们。
实例代码如下:
var str="I love javascript and java"; console.log(str.match(/java(script)?/gi));
由以上代码的运行结果可以看出,正则表达式既可以匹配字符串javascript也可以匹配java,这是因在正则表达式中采用了分组,并且使用重复量词?,可以使前面的子表达式重复0次或者1次。
二.定义子模式:
分组另一个非常重要的作用就是在完整的模式中定义子模式。
当一个正则表达式成功的和目标字符串相匹配时,可以从目标字符串中抽出和小括号中字表达式相匹配的部分。
假如我们匹配的是以一个数字开头的后面跟着一个或者多个不区分大小写的字母的字符串,正则表达式可以这样写:
/\d[a-zA-Z]+/
假如我们真正关心和需要的是开头的数字,那么就可以将正则表达式的数字部分放入小括号就可以从检索到的匹配中抽取数字.
/(\d)[a-zA-Z]+/
三.引用子表达式:
正则表达语法中可以在同一个表达式中的后部引用前面的子表达式。这是通过在"\"后面跟随数字实现的。此数字指定了小括号字表达式在正则表达式中的位置,例如\1是引用的第一个带有圆括号的子表达式,自然\2就是第二个带有圆括号的子表达式。
特别注意:由于子表达式是可以相互嵌套的,那么计算子表达式的位置的时候,只要确定左括号的位置即可。例如:
/(java(script))/
在以上正则表达式中,嵌套的子表示是可以用\2表示。
对于子表达式的引用,并不是引用的匹配模式,而是对子表示匹配内容的引用。一般来说对子表达式的引用一般是用来实施一条约束,看下面的代码:
/(['"])[^'"]*\1/
通常情况下左右引号是相匹配的,如果前面是双引号,那么结尾也要是双引号,前面是单引号那么结尾也必须是单引号,并且字符串中间不能够再出现其他的引号,例如:
"欢迎您"
'欢迎您'
那么上面的正则表达式就实现此功能,当前面的子表达式匹配单引号的时候,那么后面的\1也就表示的是单引号,如果子表示匹配的双引号,那么后面的\2就表示的是双引号。
非引用型分组:
分组会占用一定的系统资源,尤其是正则表达式较长的时候会降低匹配速度。有时候仅仅是为了设置一个分组,并不需要引用,那么使用非引用类型分组将会是一个良好的选择。
/(java(?:script))/
以上正则就是使用非引用分组,只要在左括号后面加上一个?:即可。
# 正则表达式
# 分组
# 利用正则表达式将字符串分组示例代码
# 正则表达式高级用法之分组的使用教程
# 正则表达式分组与引用的使用
# 浅谈正则表达式中的分组和引用实现方法
# 正则表达式中的$分组使用示例详解
# 的是
# 就可以
# 多个
# 是一个
# 这是
# 单引号
# 双引号
# 欢迎您
# 相匹配
# 可以用
# 我想
# 第一个
# 尤其是
# 也就
# 将会
# 就不
# 其他的
# 对其
# 第二个
相关文章:
制作网页的网站有哪些,电脑上怎么做网页?
建站之星代理平台如何选择最佳方案?
如何通过商城免费建站系统源码自定义网站主题?
建站主机是否等同于虚拟主机?
如何通过虚拟机搭建网站?详细步骤解析
网站制作免费,什么网站能看正片电影?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
定制建站流程步骤详解:一站式方案设计与开发指南
如何通过网站建站时间优化SEO与用户体验?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何撰写建站申请书?关键要点有哪些?
如何挑选最适合建站的高性能VPS主机?
如何挑选优质建站一级代理提升网站排名?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
网页设计与网站制作内容,怎样注册网站?
网站制作员失业,怎样查看自己网站的注册者?
公司网站的制作公司,企业网站制作基本流程有哪些?
如何用免费手机建站系统零基础打造专业网站?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何在宝塔面板中修改默认建站目录?
江苏网站制作公司有哪些,江苏书法考级官方网站?
常州企业网站制作公司,全国继续教育网怎么登录?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
网站制作话术技巧,网站推广做的好怎么话术?
建站之星后台管理如何实现高效配置?
,在苏州找工作,上哪个网站比较好?
如何用IIS7快速搭建并优化网站站点?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何在阿里云高效完成企业建站全流程?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何在Golang中指定模块版本_使用go.mod控制版本号
如何通过云梦建站系统实现SEO快速优化?
小程序网站制作需要准备什么资料,如何制作小程序?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何快速上传自定义模板至建站之星?
建站主机服务器选型指南与性能优化方案解析
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
中山网站推广排名,中山信息港登录入口?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
建站VPS选购需注意哪些关键参数?
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何快速搭建FTP站点实现文件共享?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
宝塔建站后网页无法访问如何解决?
建站之家VIP精选网站模板与SEO优化教程整合指南
html制作网站的步骤有哪些,iapp如何添加网页?
建站之星后台管理:高效配置与模板优化提升用户体验
*请认真填写需求信息,我们会在24小时内与您取得联系。