【发布时间】:2018-05-13 23:01:56
【问题描述】:
对于一个快速示例,我有以下字符串:
String s = "hey.there.man.${a.a}crazy$carl${a.b}jones
我也有以下方法:
private String resolveMatchedValue(String s) {
if(s.equals("a.a")) {
return "A";
else if(s.equals("a.b")) {
return "Wallet";
else if(.....
....
}
我的模式是
Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
因此,对于 s 中与 ${.*} 匹配的每个子字符串,我希望调用 resolveMatchedValue 方法,并且应该将其替换为该方法。所以理想情况下,正则表达式过程 s 应该是
s = "hey.there.man.Acrazy$carl$Walletjones
我查看了类似的解决方案,但没有根据匹配值动态替换匹配值,并且无法使其工作
编辑:使用 java8
【问题讨论】:
-
根据代码,输出不应该是
"hey.there.man.Acrazy$carlWalletjones"吗?