package ecologylab.bigsemantics.metametadata.fieldparsers;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FieldParserForRegexFind extends FieldParser
{
static final String groupPrefix = "$";
@Override
public Map<String, String> getKeyValuePairResult(FieldParserElement parserElement, String input)
{
Map<String, String> rst = new HashMap<String, String>();
if (input != null)
{
if (parserElement.isNormalizeText())
{
input = input.replaceAll("\\s+", " ").trim();
}
Pattern p = parserElement.getRegexFind();
if (p == null || p.pattern() == null || p.pattern().length() == 0)
p = parserElement.getRegex();
Matcher m = p.matcher(input);
int j=0;
while (m.find())
{
for (int i=0; i <= m.groupCount(); i++)
{
String value = m.group(i);
rst.put(groupPrefix + j++, value);
}
}
}
return rst;
}
}