возвращает все значения для одного ключа в hashmap

У меня есть один файл поиска, как это

REGEXP|Name
^.*?AAA.*?$|POP
^.*?AAA.*?$|SOP
^.*?BBB.*?$|ZOP
^.*?CCC.*?$|ROP

У меня есть входная строка и соответствие моей входной строки с этим файлом поиска со столбцом REGEXP. И где бы он ни соответствовал, его возвращающееся имя.

Шаг 1
Я загружаю файл поиска в моем инструменте, как это

import java.util.Map;
import java.util.HashMap;

Map<String, String> regexMap = new HashMap<String, String>();

globalMap.put("regexMap", regexMap);

Шаг 2

Загрузка файла поиска в hashmap следующим образом

Map<String, String> regexMap = (Map<String, String>)globalMap.get("regexMap");
 if( row1.REGEXP != null ) {
  regexMap.put( row1.REGEXP, row1.Name);
}

Шаг 3

Попадание во входную строку с этим hashmap, как это

Map<String, String> regexMap = (Map<String, String>)globalMap.get("regexMap");
for( String key : regexMap.keySet() ) {
 if( input_row.data != null ) {
  if( input_row.data.matches(key) ) {
   output_row.Name = regexMap.get(key);
   break;
  }
 }
}

Я получаю только одно значение. Я хочу, чтобы все значения с совпадениями с одним ключом.
Как и в вышеупомянутом lookup, если какая-либо строка совпадает с первыми двумя REGEXP, output_row.Имя должно возвращать POP и SOP оба.
Сейчас ее возвращают только СОП.

Is any thing am missing like using Array list or doing something wrong.

Предложение пожалуйста?

1 ответ