Я должен разобрать данные файла в хорошие и плохие записи, данные должны иметь формат
Patient_id::Patient_name (year of birth)::disease
Заболевания разделены трубами и выбраны из следующих:
1.HIV
2.Cancer
3.Flu
4.Arthritis
5.OCD
Пример: 23 :: Alex.jr (1969) :: ВИЧ | Рак | грипп
Выражение регулярного выражения, которое я написал,
\d*::[a-zA-Z]+[^\(]*\(\d{4}\)::(HIV|Cancer|flu|Arthritis|OCD)
(\|(HIV|Cancer|flu|Arthritis|OCD))*
Но это такжерассматривая записи с избыточными записями
24 :: Робин (1980) :: ВИЧ | Рак | Рак | ВИЧ
Как обрабатывать записи такого рода и как написать лучшее выражение, еслисписок болезней очень большой.
Примечание: я использую задание hadoop maponly для анализа, поэтому дайте ответ в контексте с java.