package org.springblade.code.utils; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PatternUtil { //*${xxx}* public static Pattern dynamic = Pattern.compile(".*\\$\\{([a-z]+)\\}.*"); public static Pattern dynamicLimitCount = Pattern.compile("\\$\\{([a-z]+)\\}"); /** * 判断内容中是否包含动态参数(${key}形式的) * * @param content 要判断的内容 * @return */ public static boolean isContainsDynamicParameter(String content) { if(StringUtils.isBlank(content)){ return false; } return dynamic.matcher(content).matches(); } /** * 按照动态内容的参数出现顺序,将参数放到List中 * * @param content * @return */ public static List getKeyListByContent(String content) { if(StringUtils.isBlank(content)){ return new ArrayList<>(); } Set paramSet = new LinkedHashSet<>(); Matcher m = dynamicLimitCount.matcher(content); while (m.find()) { paramSet.add(m.group(1)); } return new ArrayList<>(paramSet); } }