Java tutorial
public class MatchAddress { public static void main(String args[]) { isAddressValid("John Smith 888 Luck Street,NY 64332"); isAddressValid("John A. Smith 888 Luck Street, NY 64332-4453"); isAddressValid("John Allen Smith 888 Luck Street, NY 64332-4453"); isAddressValid("888 Luck Street, NY 64332"); isAddressValid("P.O. BOX 888 Luck Street, NY 64332-4453"); isAddressValid("John Allen Smith 888 Luck st., NY"); } public static boolean isAddressValid(String addr) { boolean retval = false; String nameToken = "\\p{Upper}(\\p{Lower}+\\s?)"; String namePattern = "(" + nameToken + "){2,3}"; String zipCodePattern = "\\d{5}(-\\d{4})?"; String addressPattern = "^" + namePattern + "\\w+ .*, \\w+ " + zipCodePattern + "$"; retval = addr.matches(addressPattern); String msg = "NO MATCH\npattern:\n " + addr + "\nregexLength:\n " + addressPattern; if (retval) { msg = "MATCH\npattern:\n " + addr + "\nregexLength:\n " + addressPattern; } System.out.println(msg + "\r\n"); return retval; } }