Regex to fetch strings enclosed inside "${VALUE}" using java regular expression throws exception
public static void main(String[] args) {
String test = "Report for ${PROCESS_NAME} with status ${PROCESS_STATUS}";
String[] results = test.split("\\${([^\\{\\}]*)\\}");
for (String result : results) {
System.err.println(result);
}
}
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 1
\${([^\{\}]*)\}
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.closure(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
Expected array: results = PROCESS_NAME, PROCESS_STATUS;
Input test string is not fixed length. Whats wrong in the regex.