• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
qiqi105
博客园    首页    新随笔    联系   管理    订阅  订阅

正则分组和捕获

<script>
var str="CCCaaabbbBBcc1111221ddDDeeEEee333eeeeEEEfffFFF44774";
console.log('str:',str);
var reg=/([a-z])\1{0,}(\d{2})\2{0,}/gi;
str.replace(reg,function($0,$1,$2){
console.log("$0:",$0);
console.log("$1:",$1);
console.log("$2:",$2);
})
</script>

结果如下:

 

其中$0代表的是整个正则匹配的结果:

/([a-z])\1{0,}(\d{2})\2{0,}/gi;

这个正则的意思是:([a-z])\1{0,}这部分意思是代表匹配多个重复出现的部分大小写字母;

其中的([a-z])\1的意思是捕获这个重复的字母,所以第一个匹配的$1是c;{0,}表示这个字幕可以重复出现的次数,两次cc,

(\d{2})\2{0,}这部分意思是匹配重复出现两次的数字例如11 11,(\d{2})\2的意思是重复出现两次的数字,所以$2是11;{0,}表示后面11必须成组出现并且有一组或者多组,例如11 11,所以1111匹配成功;

综上所述:

第一次的$0为cc1111

 

posted @ 2018-05-17 11:01  qiqi105  阅读(157)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3