package com.alimama.mdrill.adhoc;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringMatchGet {
private static HashMap<String, Pattern> match=new HashMap<String, Pattern>();
public String evaluate(final String d, String regEx, int index, String parseType) {
if (d == null) {
return new String("-");
}
Pattern pat=match.get(regEx);
if(pat==null)
{
pat = Pattern.compile(regEx);
match.put(regEx, pat);
}
Matcher mat = pat.matcher(d);
while (mat.find()) {
String rtn = mat.group(index);
if(rtn==null)
{
return new String("-");
}
if (parseType.equals("String")) {
return new String(rtn);
}
if (parseType.equals("Integer")) {
try {
Integer parse = Integer.parseInt(rtn);
return new String(String.valueOf(parse));
} catch (NumberFormatException e) {}
}
if (parseType.equals("Double")) {
try {
Double parse = Double.parseDouble(rtn);
return new String(String.valueOf(parse));
} catch (NumberFormatException e) {}
}
if (parseType.equals("Long")) {
try {
Long parse = Long.parseLong(rtn);
return new String(String.valueOf(parse));
} catch (NumberFormatException e) {}
}
}
return new String("-");
}
public static void main(String[] args) {
StringMatchGet m=new StringMatchGet();
System.out.println(m.evaluate("Launching Job 1 out of 1",".*Launching.*Job.*out.*of(.*$)", 1, "Integer"));
}
}