У меня есть строка < /p>
String myData = "status:\" op en \" AND \"Managed Type\":\"El ectrical\" AND status:verified status:\"resolved\" OR Managed Type:\"Ci vil\"";
< /code>
Мне нужно различать все значения и атрибуты по строке.Pattern pattern = Pattern.compile(
"\\s*[OR|AND]?\\s*(\"?[[\\s*]?\\w*[\\s*]?]*\"?)\\:\"?(([\\s*\\(\\)/\\\\\\$\\=\\#\\+%^'`&!{}:;|\\?\\*\\.\\[\\],~@-]?\\w*[\\(\\)/\\\\\\$\\=\\#\\+%^'`&!{}:;|\\?\\*\\.\\[\\],~@-]?\\s*)*)\"?\\s*[OR|AND]?\\s*",
Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(mydata);
while (matcher.find()) {
System.out.println(matcher.group(1) + " : " + matcher.group(2));
}
< /code>
Вывод такой же < /p>
status : op en
"Managed Type" : El ectrical
D status : verified status:
" OR Managed Type : Ci vil
< /code>
Принятый результат < /p>
status : op en
"Managed Type" : El ectrical
status : verified
status: resolved
Managed Type : Ci vil
< /code>
Заранее спасибо. < /p>
Подробнее здесь: https://stackoverflow.com/questions/414 ... lex-string