package com.ronsoft.books.nio.regex; import java.util.regex.Pattern; import java.util.regex.Matcher; /** * Validates email addresses. * * Regular expression found in the Regular Expression Library * at regxlib.com. Quoting from the site, * "Email validator that adheres directly to the specification * for email address naming. It allows for everything from * ipaddress and country-code domains, to very rare characters * in the username." * * @author Michael Daudel (mgd@ronsoft.com) (original) * @author Ron Hitchens (ron@ronsoft.com) (hacked) * @version $Id: EmailAddressFinder.java,v 1.2 2002/05/07 02:21:08 ron Exp $ */ public class EmailAddressFinder { public static void main (String[] argv) { if (argv.length < 1) { System.out.println ("usage: emailaddress ..."); } // Compile the email address detector pattern Pattern pattern = Pattern.compile ( "([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]" + "{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))" + "([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)", Pattern.MULTILINE); // Make a Matcher object for the pattern Matcher matcher = pattern.matcher (""); // loop through the args and find the addrs in each one for (int i = 0; i < argv.length; i++) { boolean matched = false; System.out.println (""); System.out.println ("Looking at " + argv [i] + " ..."); // reset the Matcher to look at the current arg string matcher.reset (argv [i]); // loop while matches are encountered while (matcher.find()) { // found one System.out.println ("\t" + matcher.group()); matched = true; } if ( ! matched) { System.out.println ("\tNo email addresses found"); } } } }