将两个正则表达式与replaceAll()结合使用

时间:2016-04-19 14:59:17

标签: java regex

我是正则表达式的新手,我有一个表达式,我必须为工作而写。我正在考虑使用replaceAll()来做这件事,但我不确定我是否可以做我建议使用一个正则表达式。

我必须将格式为"abc12378"的字符串更改为"$$$ $$$ 78"。我可以使用两个不同的正则表达式来解决这个问题:

  
      
  • 字符串: "abc12378"
  •   
  • RegEx: "([1-6])"
  •   
  • 替换 "\$"
  •   
  • 结果: "$$$$$$78"
  •   

或者

  
      
  • 字符串: "$$$$$$78"
  •   
  • RegEx: "(.{3})"
  •   
  • 替换 "$1 "
  •   
  • 结果: $$$ $$$ 78
  •   

你知道我是否可以使用一个组合的replaceAll()吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

此单replaceAll次调用可以执行您想要的操作,实际上它只是用"$$$ "替换每组3个字母数字字符:

 String s = "abc12378";
 System.out.println(s.replaceAll("[a-z0-9]{3}", "\\$\\$\\$ "));

<强>输出

$$$ $$$ 78

假设您还有一个角色,请按以下步骤操作:

String s = "123456789";
System.out.println(s.replaceAll("[a-z0-9]{3}(?!$)", "\\$\\$\\$ "));

<强>输出

$$$ $$$ 789