Если вам нужен формат этих данных, вы можете использовать якорь \G
для получения итеративных совпадений.
Затем вы можете l oop совпадений и добавить группу захвата 1 в список.
\G(\[[A-Z],[A-Z]])(?:,\h*)?
По частям:
\G
Утверждение позиции в конце предыдущего матча или в начале строки (
Захват группа 1 )
Закрыть группу 1 (?:,\h*)?
По выбору совпадать ,
и 0+ горизонтальных пробельных символов
Regex demo | Java демо
Пример кода
String regex = "\\G(\\[[A-Z],[A-Z]])(?:,\\h*)?";
String string = "[A,B], [C,D]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
List<String> result = new ArrayList<String>();
while (matcher.find()) {
result.add(matcher.group(1));
}
for (String element : result)
System.out.println(element);
Выход
[A,B]
[C,D]