Повторение группы захвата в регулярном выражении

Как лучше всего разобрать следующую строку на Java с помощью одного регулярного выражения?

Нить: someprefix foo=someval baz=anotherval baz=somethingelse

Мне нужно извлечь someprefix, someval, anotherval и somethingelse. Строка всегда содержит значение префикса (someprefix в примере) и может иметь от 0 до 4 пар ключ-значение (foo=someval baz=anotherval baz=somethingelse в примере).

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать это регулярное выражение для записи предполагаемого текста,

(?<==|^)\w+

Которая захватывает слово, которому предшествует символ = или находится в начале строки ^.

Пример кода Java для того же,

Pattern p = Pattern.compile("(?<==|^)\\w+");
String s = "someprefix foo=someval baz=anotherval baz=somethingelse";
Matcher m = p.matcher(s);
while (m.find()) {
    System.out.println(m.group());
}

Принты,

someprefix
someval
anotherval
somethingelse

Живая демонстрация

Другие вопросы по теме