Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpExtract.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpExtract.java (revision 907950) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpExtract.java (revision ) @@ -43,7 +43,7 @@ } public String evaluate(String s, String regex, Integer extractIndex) { - if (s == null || regex == null) { + if (s == null || regex == null || extractIndex < 0) { return null; } if (!regex.equals(lastRegex) || p == null) { @@ -53,7 +53,8 @@ Matcher m = p.matcher(s); if (m.find()) { MatchResult mr = m.toMatchResult(); + if (extractIndex <= mr.groupCount()) - return mr.group(extractIndex); + return mr.group(extractIndex); } return ""; }