
20-正则工具类
工具类
java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegUtil {
// 定义身份证正则表达式(支持15位和18位)
private static final String ID_CARD_REGEX = "^(\\d{15}$|\\d{17}[\\dXx])$";
/**
* 验证是否正确
* @param regex
* @param source
* @return 是否符合格式
*/
public static boolean isValid(String regex,String source) {
if (source == null) {
return false;
}
// 去除空格并转为大写处理
String upperSource = source.trim().toUpperCase();
// 正则匹配
return Pattern.matches(regex, upperSource);
}
/**
* 根据正则group得到字符串符合的值
* @param regex
* @param source
* @return
*/
public static List<String> getMatcher(String regex, String source) {
List<String> result=new ArrayList<>();
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
for (int i = 0; i < matcher.groupCount(); i++) {
result.add(matcher.group(i+1));
}
}
return result;
}
}