/** * Convert the given like pattern to a regex pattern * * @param expr * @return */ public static Expression<String> likeToRegex(Expression<String> expr) { return likeToRegex(expr, true); }
Operation<?> o = (Operation<?>)expr; if (o.getOperator() == Ops.CONCAT) { Expression<String> lhs = likeToRegex((Expression<String>) o.getArg(0), false); Expression<String> rhs = likeToRegex((Expression<String>) o.getArg(1), false); if (lhs != o.getArg(0) || rhs != o.getArg(1)) { return OperationImpl.create(String.class, Ops.CONCAT, lhs, rhs);
Expression<String> string = (Expression<String>) args.get(0); @SuppressWarnings("unchecked") //This is the expected type for like Expression<String> regex = ExpressionUtils.likeToRegex((Expression<String>) args.get(1), false); if (operator == Ops.LIKE_IC || operator == Ops.LIKE_ESCAPE_IC) { string = ExpressionUtils.toLower(string);
String regex = ExpressionUtils.likeToRegex((Expression)expr.getArg(1)).toString(); return asDBObject(asDBKey(expr, 0), Pattern.compile(regex));