Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/729 You can add a static compiled regex pattern: ``` private static final Pattern EQUATION_PATTERN = Pattern.compile("\\b(?!abs|acos|asin|atan|cbrt|ceil|cos|cosh|exp|floor|log|log10|log2|sin|sinh|sqrt|tan|tanh|signum)(_|([A-Za-z][A-Za-z0-9]*))\\b"); ``` ...then `getVariables()` can be as simple as: ``` protected static final Set<String> getVariables(final String equation) { final Matcher matcher = EQUATION_PATTERN.matcher(equation); final Set<String> variables = new LinkedHashSet<>(); while (matcher.find()) { variables.add(matcher.group()); } return variables; } ``` And perhaps to increase the readability and maintainability, we should do something like this: ``` private static final String[] FUNCTIONS = new String[] { "abs", "acos", "asin", "atan", "cbrt", "ceil", "cos", "cosh", "exp", "floor", "log", "log10", "log2", "signum", "sin", "sinh", "sqrt", "tan", "tanh" }; private static final Pattern EQUATION_PATTERN = Pattern.compile("\\b(?!" + String.join("|", FUNCTIONS) + ")(_|([A-Za-z][A-Za-z0-9]*))\\b"); ```
---