Advertisement
Guest User

Untitled

a guest
Aug 28th, 2015
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. public class RegMatcher {
  2.  
  3. private static Hashtable cache = new Hashtable(); //patterns cache
  4.  
  5.  
  6. /**
  7. * We use null for 'All' - not to make matching with ".*" - when no need
  8. */
  9. public static boolean matches(String string, String pattern) throws Exception{
  10.  
  11. if(pattern==null) //we use null to match with everything for efficiency
  12. return true; //('All' - the most frequent value been transformed to null)
  13.  
  14. Pattern p = (Pattern)cache.get(pattern);
  15. if(p==null){
  16. p = Pattern.compile(pattern);
  17. cache.put(pattern, p);
  18. }
  19.  
  20. return p.matcher(string.trim()).matches();
  21. }
  22.  
  23.  
  24. }
  25.  
  26. Usage example:
  27.  
  28. //email validation pattern which works
  29. 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,})$";
  30. public final static String CONTACT_NAME_VALIDATION_PATTERN_NOT = ".*[~`!@#$^*_+=|\\<>?/].*";
  31. ...
  32.  
  33. public void testMatchesEmail() throws Exception{
  34. assertTrue(RegMatcher.matches("a@b.COM", Constants.EMAIL_VALIDATION_PATTERN));
  35. assertFalse(RegMatcher.matches("a@b", Constants.EMAIL_VALIDATION_PATTERN));
  36. assertTrue(RegMatcher.matches("a@b.c.d.AAZ", Constants.EMAIL_VALIDATION_PATTERN));
  37. assertFalse(RegMatcher.matches("ab.c", Constants.EMAIL_VALIDATION_PATTERN));
  38. assertFalse(RegMatcher.matches("a@BBB@c", Constants.EMAIL_VALIDATION_PATTERN));
  39. assertFalse(RegMatcher.matches("@b.c", Constants.EMAIL_VALIDATION_PATTERN));
  40. assertFalse(RegMatcher.matches("AAAa@", Constants.EMAIL_VALIDATION_PATTERN));
  41. assertTrue(RegMatcher.matches("_@a.bb", Constants.EMAIL_VALIDATION_PATTERN));
  42. assertFalse(RegMatcher.matches("scassel@org", Constants.EMAIL_VALIDATION_PATTERN));
  43. assertTrue(RegMatcher.matches("some_real@ontario.aaaaaaaaaaaaaaaaaaaaaaaaaaa", Constants.EMAIL_VALIDATION_PATTERN));
  44. assertFalse(RegMatcher.matches("O'Henry@org", Constants.EMAIL_VALIDATION_PATTERN));
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement