In this example I have demonstrated the use of the regular expressions in Java programming language to do a validation of the email address. The email address might be just one or multiples selected by a semi colon or a comma. I also have presented numerous test cases of the email addresses and then have finally provided the output of running the program, as usual.
package com.kushal.tools; /** * @author Kushal Paudyal * Last Modified on 2011/05/11 * * This class demonstrates the use of regular expressions to validate multiple email * addresses. Several test examples of the email addresses are also provided. * * www.sanjaal.com/java */ import java.util.regex.Pattern; public class RegexMultipleEmailAddressValidation { /** * Define a regular expression to validate multiple email addresses. * I think the following expression is more complex that it has to be. * We can think of refactoring it at some later point. But it works * just fine right now. */ public static String regex = "(([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4}))(((;|,|; | ;| ; | , | ,){1}" +"([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4}))*)"; public static void main(String[] args) { /** * Validate various email addresses */ isValid("billgates@badmicrosoft.com"); isValid("billgates@nation.wide.com"); isValid("123@badmicrosoft.com"); isValid("'billgates@badmicrosoft.com'"); isValid("billgates@badmicrosoft.123"); isValid("abc.def@badmicrosoft.com"); isValid("abc.\\def@badmicrosoft.com"); isValid("abc_def@badmicrosoft.com"); isValid("abc_def.@badmicrosoft.com"); isValid("abc_def-@badmicrosoft.com"); isValid("^billgates@badmicrosoft.com"); isValid("billgates@badmicrosoft.com;noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com,noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com;;noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com;,noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com; noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com ; noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com , noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com,,noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.com noreply@badmicrosoft.com"); isValid("billgates@badmicrosoft.verybad@microsoft.com"); } /** * @param email - The Email Address to be validated * @return true if the email address is valid, else return false. * * Uses the regular expression defined above to do the validation. */ public static boolean isValid(String email) { System.out.println(email + " >>>>>>>> is Valid? " + Pattern.matches(regex, email)); return Pattern.matches(regex, email); } }
Here is the output of this program:
billgates@badmicrosoft.com >>>>>>>> is Valid? true billgates@nation.wide.com >>>>>>>> is Valid? true 123@badmicrosoft.com >>>>>>>> is Valid? true 'billgates@badmicrosoft.com' >>>>>>>> is Valid? false billgates@badmicrosoft.123 >>>>>>>> is Valid? false abc.def@badmicrosoft.com >>>>>>>> is Valid? true abc.\def@badmicrosoft.com >>>>>>>> is Valid? false abc_def@badmicrosoft.com >>>>>>>> is Valid? true abc_def.@badmicrosoft.com >>>>>>>> is Valid? true abc_def-@badmicrosoft.com >>>>>>>> is Valid? true ^billgates@badmicrosoft.com >>>>>>>> is Valid? false billgates@badmicrosoft.com;noreply@badmicrosoft.com >>>>>>>> is Valid? true billgates@badmicrosoft.com,noreply@badmicrosoft.com >>>>>>>> is Valid? true billgates@badmicrosoft.com;;noreply@badmicrosoft.com >>>>>>>> is Valid? false billgates@badmicrosoft.com;,noreply@badmicrosoft.com >>>>>>>> is Valid? false billgates@badmicrosoft.com; noreply@badmicrosoft.com >>>>>>>> is Valid? true billgates@badmicrosoft.com ; noreply@badmicrosoft.com >>>>>>>> is Valid? true billgates@badmicrosoft.com , noreply@badmicrosoft.com >>>>>>>> is Valid? true billgates@badmicrosoft.com,,noreply@badmicrosoft.com >>>>>>>> is Valid? false billgates@badmicrosoft.com noreply@badmicrosoft.com >>>>>>>> is Valid? false billgates@badmicrosoft.verybad@microsoft.com >>>>>>>> is Valid? false