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
Originally posted 2012-04-04 19:33:04.