如何将Regex分配给某些Enum

时间:2017-10-02 13:28:29

标签: java regex enums

你们中的任何人碰巧知道如何使用分配给枚举的正则表达式来验证字符串是否适合它?

2 个答案:

答案 0 :(得分:3)

你可以给enum一个检查它的方法

public enum RecordField {
    ...;
    // I always keep the Pattern for regexes that don't change
    // to avoid repetetive compilation
    private Pattern pattern;
    RecordField(String regex) {
        pattern = Pattern.compile(regex);
    }
    public boolean isMatch(String toTest) { 
        return pattern.matcher(toTest).matches();
    }
}

并像这样使用

RecordField.PKN.isMatch(yourString);

答案 1 :(得分:0)

您可以将模式直接设置为枚举...

 public enum RecordField {

    ACTION_ID(Pattern.compile("[A-Z0-9]{4}")),
    TYPE(Pattern.compile("0[1|2|4|5]"));

    private Pattern regex;

    RecordField(Pattern s) {
        this.regex = s;
    }

    public Boolean matches(String text){
        return regex.matcher(text).find();
    }

}