Для быстрого примера у меня есть следующая строка:
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 = "hey.there.man.Acrazy$carl$Walletjones
Я просмотрел аналогичные решения, но ничего, что динамически заменяло бы совпадающие значения на основе совпадающего значения, и не смог заставить его работать
редактировать: используя java8
"hey.there.man.Acrazy$carlWalletjones"
? - person mark42inbound   schedule 14.05.2018