Попробуйте
([^=\s]+)\s*=\s*\[\s*([^\s,]+),\s*([^\s,]+)\s*\]
Это будет соответствовать одной паре ключ / значение и извлечь ключ в обратной ссылке 1, первое значение в обратной ссылке 2 и второе значение в обратной ссылке 3.
В Java это может выглядеть примерно так:
Pattern regex = Pattern.compile("([^=\\s]+)\\s*=\\s*\\[\\s*([^\\s,]+),\\s*([^\\s,]+)\\s*\\]");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
key = regexMatcher.group(1);
val1 = regexMatcher.group(2);
val2 = regexMatcher.group(3);
}
Пояснение:
([^=\s]+) # Match one or more characters except whitespace or =
\s*=\s* # Match =, optionally surrounded by whitespace
\[\s* # Match [ plus optional whitespace
([^\s,]+) # Match anything except spaces or commas
,\s* # Match a comma plus optional whitespace
([^\s,]+) # Match anything except spaces or commas
\s*\] # Match optional whitespace and ]