public class Matching { public static void main(String[] args) { match("abc 888 rohini, NY 64332"); match("ABC 888 south ex, NY 64332-4453"); } public static boolean match(String address) { boolean retrival = false; String name = "\\p{Upper}"; String namePattern = "("+name +"){2,3}"; String zipCode = "\\d{5}(-\\d{4})?"; String regex = "^"+ namePattern + "\\w+ .*, \\w+ " + zipCode + "$"; retrival = address.matches(regex); String msg = "NO MATCH\npattern:\n " + address + "\nregex is:\n " + regex; if (retrival) { msg = "MATCH\npattern:\n " + address + "\nregex is:\n " + regex; } System.out.println(msg + "\r\n"); return retrival; } }