今天遇到一个正则表达式问题,如题,需求是将“aaa   bbb”替换成“aaa---bbb”,关键来了,要求正则表达式前面是aaa,后面是bbb。

如s.replaceAll("aaa\\s+bbb", "aaa-bbb");这样就只能换成一个-

不要告诉我s.replaceAll(" ", "-"),这个我也会。

网友的方法:

String str = "qqqqqaaaadrrr ssssaaa bbbssdfsdfsdfs";

Pattern p = Pattern.compile("(aaa\\s+bbb)");

Matcher m = p.matcher(str);

while(m.find())

{

str = str.replaceFirst(m.group(1), m.group(1).replaceAll("\\s", "-"));

}

System.out.println(str);

真心不错,简洁有效。

思路为:先找到匹配到的字符串(记为s1),再对字符串s1修改成匹配后的字符串s2,最终再对整个字符串s将s1替换为s2。

另一个解法:

String x = "(.*aaa)(\\s+)(bbb.*)";

Pattern pattern = Pattern.compile(x);

String loop="";

String s = "qqqqqaaaadrrr ssssaaa bbbssdfsdfsdfs";

Matcher matcher = pattern.matcher(s);

if (matcher.find()){

for (int i = 0; i < matcher.group(2).length(); i++) {

loop=loop+"-";

}

System.out.println(matcher.group(1)+loop+matcher.group(3));

}

思路:利用group拼凑,最终得出替换后结果

原文:http://blog.csdn.net/love_5209/article/details/19418543

java 正则 多个空格_java正则表达式 多个空格替换多个成-相关推荐

  1. java正则匹配双字节_Java 正则表达式详解(二)

    Java常用正则表达式匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用 ...

  2. java 正则提取大于等于号_Java正则表达式

    一.简述 在字符串比较时,简单的操作可以使用一些算法来查找或匹配,如要判断一个端口地址地址是否合法,可以简单的判断其是否在0-65536之间. 但是,有一些字符匹配操作使用这种方法非常复杂,如匹配一个 ...

  3. java 正则 不包含字符串_java正则表达式找出不包含特定字符串

    看到有同学询问这个都好几天了还没解决,就摆渡了哈, 以下纯属copy, ======================================= 正则表达式中有前瞻(Lookahead)和后顾( ...

  4. java正则匹配英文句号_java正则表达式最简单 学习教程

    本大教程以一个验证手机号的表达式为例,学完本例后,基本上所有的表达式都能看懂了,但是如果想要达到上手就能写的程度,还需要多练习多测试 呀! 来看 这样一个代码 String mobilePhoneRe ...

  5. java正则匹配的坑_java正则表达式入坑指南

    在日常开发工作中,无论你使用的语言是java.python.shell.golang还是C#, 正则表达式是编程语言中几乎绕不开的话题.有了它,可以帮你快速定位到符合条件的文本内容.今天小编带大家一起 ...

  6. java正则匹配下划线_java正则表达式-匹配中文数字字母下划线

    正则表达式用来指定字符串模式.当你需要定位匹配某种模式的字符串时就可以使用正则表达式.例如,我们下面的一个例程就是在一个HTML文件中通过查找字符串模式来定位所有的超链接.     当然,为了指定一种 ...

  7. java正则表达式 替换空格_Java正则表达式替换移除空行和多余的空格

    这几天重拾Java写代码,须要操做文本文件中的内容.正则表达式 最终,要把内容里的空行和多余的连续空格移除,使用String里的replace或者replaceAll,试了不少次都没有成功.spa 最 ...

  8. java 匹配反斜杠_java正则表达式的反斜杠(\)匹配

    源文:http://chz2002.diandian.com/post/2012-05-24/19803797 java中匹配正则表达式匹配反斜杠要用""两个反斜杠就要用" ...

  9. java正则 找出数字_Java使用正则表达式实现找出数字功能示例

    本文实例讲述了Java使用正则表达式实现找出数字功能.分享给大家供大家参考,具体如下: 1.问题: String str = "fjd789klsd908434jk#$$%%^3848854 ...

最新文章

  1. 【Android工具】安卓魔力播放器moliplayer绿色无广告,手机DLNA播放器
  2. java写 IP十进制转变_java实现ip地址与十进制数相互转换
  3. 《信息学奥赛一本通》1283:登山
  4. 并行计算(一)——初步认识
  5. B2B多商铺初期权限数据库设计
  6. 怎么找网页源文件位置_原神白铁块位置分布图 原神白铁块怎么找
  7. Tomcat运行时报 cannot be cast to javax.servlet.Servlet
  8. GATK GATK best practices notes
  9. Git Commit 规范以及emoji 使用指南
  10. Cesium针对DEM和3Dtiles通视分析(两个点之间是否能看见)
  11. vscode中用快捷键 Alt + Shift + F 格式化代码不生效的问题
  12. sql取每组最新数据
  13. JavaWeb项目中使用到的过滤器
  14. 基于Netty的RPC架构实战演练
  15. Android Duplicate class com.xxx found in modules
  16. 傲梅分区助手v8.1.0 企业单文件免费版
  17. HTML5+CSS3+JS实现满屏下雪效果
  18. 昆明北大附中2021高考成绩查询,北大附中云南实验学校2021年排名
  19. 转化率最高的10个购物网站的经验
  20. 三分钟时间告诉你提词器哪款软件好用

热门文章

  1. 如何用“区块链+稳定币”技术来提升资产证券化市场运作效率
  2. AjaxPro怎么用
  3. 马哥教育第二十二天IO模型理论、数据库基础理论、LAMP平台理论基础及mysql部署...
  4. php培训12.22
  5. Netbeans自定义mode
  6. 在WPF中弹出右键菜单时判断鼠标是否选中该项
  7. Spring Boot 2.4.0 全新发布,还不快来实战
  8. .net html转义字符,asp.net转义字符
  9. myemployees库的四张表介绍
  10. container常见操作