java - 使用replaceAll()组合两个正则表达式

标签 java regex

我是正则表达式新手,我有一个必须为工作编写的表达式。我正在考虑使用 replaceAll() 来执行此操作,但我不确定是否可以使用一个正则表达式来完成我所建议的操作。

我必须将“abc12378”格式的字符串更改为“$$$ $$$ 78”。我可以使用两个不同的正则表达式来完成此操作,没有问题:

  • String: "abc12378"
  • RegEx: "([1-6])"
  • Replacement: "\$"
  • Result: "$$$$$$78"

或者

  • String: "$$$$$$78"
  • RegEx: "(.{3})"
  • Replacement: "$1 "
  • Result: $$$ $$$ 78

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

任何帮助将不胜感激。

最佳答案

这个 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

关于java - 使用replaceAll()组合两个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722162/

相关文章:

java - 通知同一应用程序的其他 Activity 从一个 Activity 中自行完成

java - Canvas 中同一动画 GIF 的多个实例 (Java)

java - java返回两个参数的方法

java - 在 Struts 2 中通过请求传递上下文参数

regex - ExpressJS 路由正则表达式

javascript - 相同的正则表达式在 Java 和 JavaScript 中有不同的结果

javascript - 为什么字符类中的句点不只匹配文字句点

javascript - 匹配具有唯一数字的字母数字词(不是仅限数字的词)

regex - 如何在不知道正则表达式匹配的情况下使用正则表达式提取子字符串(组)?

java - 高效更新已排序的 JavaFX ObservableList