Как лучше всего разобрать следующую строку на Java с помощью одного регулярного выражения?
Нить:
someprefix foo=someval baz=anotherval baz=somethingelse
Мне нужно извлечь someprefix
, someval
, anotherval
и somethingelse
. Строка всегда содержит значение префикса (someprefix
в примере) и может иметь от 0 до 4 пар ключ-значение (foo=someval baz=anotherval baz=somethingelse
в примере).
Вы можете использовать это регулярное выражение для записи предполагаемого текста,
(?<==|^)\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