对于快速示例,我有以下字符串:
String s = "hey.there.man.${a.a}crazy$carl${a.b}jones
Run Code Online (Sandbox Code Playgroud)
我也有以下方法:
private String resolveMatchedValue(String s) {
if(s.equals("a.a")) {
return "A";
else if(s.equals("a.b")) {
return "Wallet";
else if(.....
....
}
Run Code Online (Sandbox Code Playgroud)
我的模式是
Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
Run Code Online (Sandbox Code Playgroud)
因此,对于匹配$ {.*}的s中的每个子字符串,我希望调用resolveMatchedValue方法,并且应该替换它.理想情况下,在正则表达式过程之后应该如此
s = "hey.there.man.Acrazy$carl$Walletjones
Run Code Online (Sandbox Code Playgroud)
我已经查看了类似的解决方案,但没有根据匹配的值动态替换匹配的值,并且无法使其工作
编辑:使用java8