Я пытаюсь создать выражение регулярного выражения, которое бы соответствовало одному или нескольким назначениям значений переменных в одной строке. Я использую следующее выражение:
([a-z][a-zA-Z0-9-]*)=(('(\'|[^\'])*')|("(\"|[^"])*"))
Например, если в качестве входных данных используется следующая строка:
a="xyz" b="hello world"
И используется следующий код:
Matcher matcher = rules.get(regex).matcher(input);
int start = 0;
while (matcher.find(start)) {
System.err.println(matcher.group(0));
start = matcher.end();
}
Он должен дать мне два отдельных результата:
1. a="xyz"
2. b="hello world"
Но он возвращает только один, всю входную строку.
a="xyz" b="hello world"
Кажется, он принимает xyz" b="hello world
в качестве внутреннего часть. Как я могу решить эту проблему?