用正则匹配字符串中连续的字符

1.通过利用正则来匹配字符串中有两个或两个以上的连续字符的子字符串
方法如下:

 <script>var reg =/(.)\1{1,}/g;//正则表达式var str = "abbcccdeeeefgaa";//要演示的目标字符串var res1 = str.match(reg)//匹配两个或两个以上连续字符var res2 = str.replace(reg,"$1")//其中一种应用,实现字符串去重console.log("匹配结果:",res1)console.log("字符串去重结果:",res2)</script>

输出结果如下:


2.分析
2.1
var reg =/(.)\1{0,}/g;实现了对字符串中连续两个或两个以上的字符匹配,改正则表达式实际上等价于:/(.)\1+/g。 其中(.)表示匹配任意字符,在正则表达式中的小括号"()“代表分组的意思。 如果再其后面出现\1则是代表与第一个小括号中要匹配的内容相同,同理,例如“/(.)/1(\d)/2/g”中的“/2”代表的就是”(\d)",其余的以此类推,$1和$2则分别表示第一个小括号和第二个小括号所匹配到的内容。“1”后面的“+”表示“\1”的次数,这里其实就相当于至少有一个“\1”,也就是再加上前面的“(.)”就表示可以匹配至少两个连续的字符了。

2.2
这里其实是实现字符串去重的其中一种方法了,具体是通过字符的replace方法来实现的,replace接收两个参数,第一个为要替换的部分,也可以是正则表达式,第二个参数表示要替换的目标内容,由上面的打印结果可知,[“bb”, “ccc”, “eeee”, “aa”]为正则表达式所匹配到的内容,由于是全局匹配,所以"$1"则表示第一个小括号"(.)"所匹配到的单个字符,然后再将通过正则表达式所匹配到的内容全部换成单个字符就可以实现字符串去重了。

用正则匹配字符串中连续的字符相关推荐

  1. java string 连续字符_Java中字符串中连续相同字符去重方法

    导读 正文 最近参加了一个面试,问到了如何在一个字符串中连续相同字符去重,想了想用正则表达式应该可以轻松实现.可是由于长时间没有编码了,而且由于原先的工作用到的比较少.具体的自己就不会写正则表达式用到 ...

  2. java 相同字符不连续_Java中字符串中连续相同字符去重方法

    搜索热词 最近参加了一个面试,问到了如何在一个字符串中连续相同字符去重,想了想用正则表达式应该可以轻松实现.可是由于长时间没有编码了,而且由于原先的工作用到的比较少.具体的自己就不会写正则表达式用到的 ...

  3. JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式

    JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式 .match(/{[^}{]*?}/g)

  4. php 正则匹配字符串中的所有数字

    php 正则匹配字符串中的所有数字 function isHaveKC($str){preg_match_all('/\d+/',$str,$arr);print_r($arr); } echo is ...

  5. 正则匹配字符串中的相同项

    正则匹配字符串中的相同项,再精确匹配数字并取出最大值 业务中多层嵌套的数组对象,每个对象都有一个唯一值,需要过滤这唯一值,如果有新对象加入,需要把新的对象也添加一个唯一值 这时考虑把数组对象转换为字符 ...

  6. 正则——匹配字符串中字符组合模式

    目录 一.了解正则 二.创建正则表达式 1.通过调用RegExp对象的构造函数来创建: 2.通过字面量创建 3.测试正则表达式: 三.正则中的特殊字符(元字符) 1.边界符: 2.字符类: 3.范围符 ...

  7. Java通过正则匹配字符串中“${key}”的key

    文章目录 前言 一.正则表达式匹配${key} 二.在Java中使用 参考文档 前言 不太了解正则表达式,这里只是记录解决问题的方法. 一.正则表达式匹配${key} .*\$\{([x00-xF]+ ...

  8. js正则匹配字符串中某段内容

    1.如何使用正则 var expression = / pattern /flags; 其中模式(pattern)部分可以是任何简单或复杂的正则表达式,每个正则表达式都带有一个或多个标签(flags) ...

  9. python正则匹配字符串中的数字_Python正则表达式匹配字符串中的数字

    1.使用"\d+"匹配全数字 代码: import re zen = "Arizona 479, 501, 870. Carlifornia 209, 213, 650. ...

最新文章

  1. paddle_ocr2.0入门踩坑
  2. java的知识点17——java.util.Arrays类、多维数组
  3. 七国要求科技巨头预留后门 应对马甲芯片高度警惕
  4. ASP.NET Core在 .NET 5 Preview 7的更新
  5. CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
  6. vue3 线上环境 ctx 无法识别
  7. Consider defining a bean of type ‘java.lang.String‘ in your configuration
  8. 部署到gcp_将S/4部署在“大型公有云”上
  9. C++类的静态成员函数
  10. 能源路由器 :分布式智能电网应用的混合通信体系结构
  11. android无效安装包,无效的apk文件是怎么回事_无效的apk文件问题解析
  12. 吉特仓库管理系统- 斑马打印机 ZPL语言的腐朽和神奇
  13. 【红外遥控器】基于FPGA的学习型红外遥控器verilog开发
  14. DAY 10 | 自学前端第十天
  15. jquery alert重写,不弹出错误提示
  16. 【vue自定义指令】
  17. 2021年中国阴极铜产量及重点企业对比分析:江西铜业vs铜陵有色vs云南铜业[图]
  18. 2022出海东亚:韩国电商市场现状及网红营销特点
  19. mysql中 回滚事务是什么_什么是事务?什么是回滚事务,以及四种事务的隔离级别...
  20. 学习日记day32 平面设计 字体构图风格3(创意、构图)

热门文章

  1. 多因子选股的策略实现(附:源码)
  2. 标准差、方差、协方差和互相关系数
  3. 【项目源码】- 【模仿知乎日报】模仿知乎日报
  4. 【搭建私有云盘】无公网IP,在外远程访问本地微力同步
  5. 数字化工厂的十大特征,你都知道哪些
  6. 生命中最简单又最困难的事-经典语录
  7. 【Linux】静态库与动态库
  8. 洲阁筛/Min25筛
  9. (c语言)Saving James Bond - Hard Version (30分)
  10. 舞伴问题 队列 数据结构