Вот решение в одну строку для его измельчения:
String[] parts = input.split("(?m)\\s*(^.*<.*$)+\\s*");
Исходя из введенного выше, вы получите:
[, Search Results:, , Member ID: 10149, Title:, First Name: Skye]
Итерируйте, игнорируя то, что вам не нужно. Предполагая, что «Результаты поиска:» помечают нового человека, сделайте это:
List<Map<String, String>> peopleList = new ArrayList<Map<String, String>>();
Map<String, String> person = null;
for (String part : parts) {
if (!part.contains(":") || person == null) continue;
if (parts.startsWith("Search Results")) {
person = new HashMap<String, String>();
peopleList.add(person);
continue;
}
String[] nameValue = part.trim().split(":");
person.put(nameValue[0].trim(), nameValue[1].trim());
}
Теперь у вас есть список карт, на каждой из которых есть записи типа «ID участника» = «10149» и т. Д.