我是正则表达式新手,我有一个必须为工作编写的表达式。我正在考虑使用 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/