Я новичок в Java и регулярное выражение. Я пытаюсь извлечь данные из следующей строки:
JAMMURI YA KENYA ¢)a(s REPUBLIC OF KENYA
sennc wnecs: 23085129 aShl e 31662252
FULL NAMES
JUDITH AWINO OWITI
DATE OF BIRTH
25. 10. 1992
SEX
FEMALE
DISTRICT OF BIRTH
MUHORONI
PLACE OF ISSUE
. NYANDO
DATE OF ISSUE
' 16.04. 2013 A
j HOLDER'S SIGN oo - Ve
Где: 23085129 = IDNumber, 31662252 = SerialNumber, JUDITH AWINO OWITI = Name, 25. 10. 1992 = DateOfBirth
Вот мой код:
static HashMap<String, String> interpretText(String ocrText) {
HashMap<String, String> result = new HashMap<String, String>();
result.put("Text", ocrText);
for (String text : ocrText.split("\\r?\\n")) {
//Get ID Only
String pattern = "\\s+([0-9]{9})";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(text);
if (m.find()) {
System.out.println("IDNumber: " + m.group(0) );
result.put("IDNumber", m.group(0));
}
// Get all other numbers
pattern = "(\\d+)(.*)";
r = Pattern.compile(pattern);
m = r.matcher(text);
if (m.find()) {
System.out.println("Found value: " + m.group() );
}
}
return result;
}
Моя задача заключается в том, как извлечь вышеупомянутые ключевые элементы данных из строки. Моя реализация регулярных выражений не работает. Какова правильная реализация регулярного выражения для 23085129 = IDNumber, 31662252 = SerialNumber, JUDITH AWINO OWITI = Name, 25. 10. 1992 = DateOfBirth
в l oop?