001
014
015 package com.liferay.portal.expression;
016
017 import java.util.ArrayList;
018 import java.util.Collections;
019 import java.util.List;
020 import java.util.regex.Matcher;
021 import java.util.regex.Pattern;
022
023
026 public class VariableNamesExtractor {
027
028 public List<String> extract(String expressionString) {
029 if (expressionString == null) {
030 return Collections.emptyList();
031 }
032
033 List<String> variableNames = new ArrayList<String>();
034
035 Matcher matcher = _pattern.matcher(expressionString);
036
037 while (matcher.find()) {
038 variableNames.add(matcher.group(1));
039 }
040
041 return variableNames;
042 }
043
044 private static final Pattern _pattern = Pattern.compile(
045 "\\b([a-zA-Z]+[\\w\\._]*)(?!\\()\\b", Pattern.MULTILINE);
046
047 }