Вот простой шаблон: [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?
Спасибо.