Email Regular Expression Pattern
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*
@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
Description
^ # start of the line
[_A-Za-z0-9-\\+]+ # must start with string in the bracket
# [ ], must contains one or more (+)
( # start of group #1
\\.[_A-Za-z0-9-]+ # follow by a dot "." and string in
# the bracket [ ], must contains one
# or more (+)
)* # end of group #1,this group is
# optional(*)
@ # must contains a "@" symbol
[A-Za-z0-9-]+ # follow by string in the bracket [ ],
# must contains one or more (+)
( # start of group #2 - first level TLD
# checking
\\.[A-Za-z0-9]+ # follow by a dot "." and string in the
# bracket[ ], must contains one or more (+)
)* # end of group #2, this group is optional (*)
( # start of group #3 - second level TLD
# checking
\\.[A-Za-z]{2,} # follow by a dot "." and string in the
# bracket [ ], with minimum length of 2
) # end of group #3
$ # end of the line
The combination means, email address must start with “_A-Za-z0-9-\+” , optional follow by “.[_A-Za-z0-9-]”, and end with a “@” symbol. The email’s domain name must start with “A-Za-z0-9-“, follow by first level Tld (.com, .net) “.[A-Za-z0-9]” and optional follow by a second level Tld (.com.au, .com.my) “\.[A-Za-z]{2,}”, where second level Tld must start with a dot “.” and length must equal or more than 2 characters.
**
1. Java Regular Expression Example
**
Here’s a Java example to show you how to use regex to validate email address.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator {
private Pattern pattern;
private Matcher matcher;
private static final String EMAIL_PATTERN =
"^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
public EmailValidator() {
pattern = Pattern.compile(EMAIL_PATTERN);
}
/**
* Validate hex with regular expression
*
* @param hex
* hex for validation
* @return true valid hex, false invalid hex
*/
public boolean validate(final String hex) {
matcher = pattern.matcher(hex);
return matcher.matches();
}
}
2. Valid Emails
- mkyong@yahoo.com, mkyong-100@yahoo.com, mkyong.100@yahoo.com
- mkyong111@mkyong.com, mkyong-100@mkyong.net, mkyong.100@mkyong.com.au
- mkyong@1.com, mkyong@gmail.com.com
- mkyong+100@gmail.com, mkyong-100@yahoo-test.com
3. Invalid Emails
- mkyong – must contains “@” symbol
- mkyong@.com.my – tld can not start with dot “.”
- mkyong123@gmail.a – “.a” is not a valid tld, last tld must contains at least two characters
- mkyong123@.com – tld can not start with dot “.”
- mkyong123@.com.com – tld can not start with dot “.”
- .mkyong@mkyong.com – email’s first character can not start with dot “.”
- mkyong()*@gmail.com – email’s is only allow character, digit, underscore and dash
- mkyong@%*.com – email’s tld is only allow character and digit
- mkyong..2002@gmail.com – double dots “.” are not allow
- mkyong.@gmail.com – email’s last character can not end with dot “.”
- mkyong@mkyong@gmail.com – double “@” is not allow
- mkyong@gmail.com.1a -email’s tld which has two characters can not contains digit
[Reference]
http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/