package edu.stanford.nlp.util; import java.io.Serializable; import java.util.function.Predicate; import java.util.regex.Pattern; /** * Filters Strings based on whether they match a given regex. * * @author John Bauer */ public class RegexStringFilter implements Predicate<String>, Serializable { final Pattern pattern; public RegexStringFilter(String pattern) { this.pattern = Pattern.compile(pattern); } public boolean test(String text) { return pattern.matcher(text).matches(); } @Override public int hashCode() { return pattern.hashCode(); } @Override public boolean equals(Object other) { if (other == this) { return true; } if (!(other instanceof RegexStringFilter)) { return false; } return ((RegexStringFilter) other).pattern.equals(pattern); } }