正则表达式:字符串中连续重复字符串的识别和替换
来源:互联网 发布:行业数据分析 编辑:程序博客网 时间:2024/05/17 07:49
今天编程的时候遇到一个正则表达式查找和替换的问题:对于字符串连续出现的字符,用“(重复字符)”替换。我想到用正则表达式比较高效。
对于字符串中的连续重复的字符,正则表达式是:
(.)\1+
以下是程序的片段:
Pattern pattern = Pattern.compile("(.)\\1+"); Matcher matcher = pattern.matcher("111234445466"); //sb 缓冲区作为存储替换后的结果 StringBuffer sb = new StringBuffer(); //用正则表达式的find函数去判断,有没有匹配的结果集 while (matcher.find()) { //match.group(0) 是匹配的字符串,比如111234445466中的111 //match.group(1) 是匹配的字符串的单个字符,比如111234445466中的111中的1 String repeat = matcher.group(1); //appendReplacement用第二个参数去替换匹配成功的子串,并把结果存放在sb中,前面未匹配成功的也会放进去,后面的未匹配成功的不会放进去。例如:11123444546634 最后会替换成(1)23(4)54(6) matcher.appendReplacement(sb, "("+repeat+")" ); } //把后面未匹配成功的附加到sb上,例如:11123444546634 最后会替换成(1)23(4)54(6)34 matcher.appendTail(sb); return sb.toString();
0 0
- 正则表达式:字符串中连续重复字符串的识别和替换
- 正则表达式替换字符串
- 使用正则表达式将一个字符串中连续的多个(两个或者两个以上)替换为一个空格
- C#中 正则表达式进行忽略大小写的字符串替换
- C#中正则表达式进行忽略大小写的字符串替换
- C#中正则表达式进行忽略大小写的字符串替换
- java替换字符串中符合正则表达式的内容
- java正则表达式替换字符串中带小数点的数字
- 正则表达式-字符串基本的匹配,拆分,替换和截取
- 字符串之替换字符串中连续出现的指定字符串
- 字符串之替换字符串中连续出现的指定字符串
- 字符串问题---替换字符串中连续出现的指定字符串
- ASP.NET正则表达式查找字符串中重复的字符
- ASP.NET正则表达式查找字符串中重复的字符
- JavaScript_正则表达式小试牛刀-字符串的替换
- 简单的正则表达式方法字符串替换
- 正则表达式替换指定位置的字符串
- Emacs正则表达式替换时替换字符串中含有回车符无法替换的问题
- Android中的Scroller类
- bzoj2654 tree 最小生成树+二分验证
- matlab 学习之数组运算
- 大神教你如何在 Linux 中启用 Shell 脚本的调试模式
- 纯CSS手里剑绘制练习优化2
- 正则表达式:字符串中连续重复字符串的识别和替换
- getter ,setter
- 剑指Offer——京东实习笔试题汇总
- HDU 2149 Public Sale(巴什博弈)
- freeCodeCamp任务之Basic-Algorithm-Scripting
- 0到1搞一个windows开发环境
- AtomicInteger的并发处理
- windows下的nmake的makefile编写
- 粒子滤波(Particle Filter)及其在机器人定位中的应用