Skip to content
鼓励作者:欢迎打赏犒劳

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;
    }
}

如有转载或 CV 的请标注本站原文地址