Вот простой шаблон: [key]: [value1] [value2] [value3] [valueN]
Я хочу получить:
- массив значений
Вот мое регулярное выражение: ^([^:]+):(:? ([^ ]+))++$
Вот мой текст: foo: a b c d
Matcher дает мне 2 группы: foo (как ключ) и d (как значения).
Если я использую +? вместо ++, я получаю a, а не d.
Итак, java возвращает мне первое (или последнее) появление группы.
Я не могу использовать find() здесь, потому что есть только один.
Что я могу сделать, кроме разделения регулярного выражения на 2 части и использования find для массива значений? Я работал с регулярными выражениями во многих других средах, и почти у всех из них есть возможность получать "первое появление группы 1", "второе появление группы 1" и т.д.
Как мне сделать с помощью java.util.regex в JDK6?
Спасибо.