Это код, который я читал на форуме.Что означает это регулярное выражение [^}] *
public String replaceVariables(String input, Map<String, String> context) {
if(context == null || input == null)
return input;
Matcher m = Pattern.compile("\\$\\{([^}]*)\\}").matcher(input);
// Have to use a StringBuffer here because the matcher API doesn't accept a StringBuilder -kg
StringBuffer sb = new StringBuffer();
while(m.find()) {
String value = context.get(m.group(1));
if(value != null)
m.appendReplacement(sb, value);
}
m.appendTail(sb);
return sb.toString();
}
Я смущаюсь относительно [^}]*
. Могу ли я использовать другой символ вместо }
?
Вы прочитали, например. http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html? –
http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean/22944075#22944075 –
Буквально: «любой символ, который не является закрывающей скобкой (' [^}] '), ноль или больше раз ('*') ". – fge