Github user ottobackwards commented on a diff in the pull request: https://github.com/apache/metron/pull/912#discussion_r164303393 --- Diff: metron-stellar/stellar-common/src/main/java/org/apache/metron/stellar/dsl/functions/RegExFunctions.java --- @@ -100,4 +100,39 @@ public Object apply(List<Object> list) { return matcher.group(groupNumber); } } + + @Stellar(name = "REGEXP_REPLACE", + description = "Replace all occurences of the regex pattern within the string by value", + params = { + "string - The input string", + "pattern - The regex pattern to be replaced. Special characters must be escaped (e.g. \\\\d)", + "value - The value to replace the regex pattern" + }, + returns = "The modified input string with replaced values") + public static class RegexpReplace extends BaseStellarFunction { + + @Override + public Object apply(List<Object> list) { + if (list.size() != 3) { + throw new IllegalStateException( + "REGEXP_REPLACE expects three args: [string, pattern, value]" + + " where pattern is a regexp pattern"); + } + String str = (String) list.get(0); + String stringPattern = (String) list.get(1); + String value = (String) list.get(2); + --- End diff -- I think you want to check for null or empty StringUtils.isEmpty(str)
---