Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RegMatcher {
- private static Hashtable cache = new Hashtable(); //patterns cache
- /**
- * We use null for 'All' - not to make matching with ".*" - when no need
- */
- public static boolean matches(String string, String pattern) throws Exception{
- if(pattern==null) //we use null to match with everything for efficiency
- return true; //('All' - the most frequent value been transformed to null)
- Pattern p = (Pattern)cache.get(pattern);
- if(p==null){
- p = Pattern.compile(pattern);
- cache.put(pattern, p);
- }
- return p.matcher(string.trim()).matches();
- }
- }
- Usage example:
- //email validation pattern which works
- public final static String EMAIL_VALIDATION_PATTERN = "^[_A-Za-z0-9-+']+(\\.[_A-Za-z0-9-+']+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$";
- public final static String CONTACT_NAME_VALIDATION_PATTERN_NOT = ".*[~`!@#$^*_+=|\\<>?/].*";
- ...
- public void testMatchesEmail() throws Exception{
- assertTrue(RegMatcher.matches("a@b.COM", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("a@b", Constants.EMAIL_VALIDATION_PATTERN));
- assertTrue(RegMatcher.matches("a@b.c.d.AAZ", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("ab.c", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("a@BBB@c", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("@b.c", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("AAAa@", Constants.EMAIL_VALIDATION_PATTERN));
- assertTrue(RegMatcher.matches("_@a.bb", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("scassel@org", Constants.EMAIL_VALIDATION_PATTERN));
- assertTrue(RegMatcher.matches("some_real@ontario.aaaaaaaaaaaaaaaaaaaaaaaaaaa", Constants.EMAIL_VALIDATION_PATTERN));
- assertFalse(RegMatcher.matches("O'Henry@org", Constants.EMAIL_VALIDATION_PATTERN));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement