import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^([a-zA-Z0-9!#$%&'*+\\/=?^_`\\{|\\}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+\\/=?^_`\\{|\\}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$";
final String string = "--------- valid ---------\n"
+ "something@something.com\n"
+ "someone@localhost.localdomain\n"
+ "someone@127.0.0.1\n"
+ "a@b.b\n"
+ "a/b@domain.com\n"
+ "{}@domain.com\n"
+ "m*'!%@something.sa\n"
+ "tu!!7n7.ad##0!!!@company.ca\n"
+ "%@com.com\n"
+ "!#$%&'*+/=?^_`{|}~.-@com.com\n"
+ "USER@EXAMPLE.COM\n"
+ "someone@do-ma-in.com\n"
+ "a@p.com\n\n"
+ "-------- invalid --------\n"
+ "somebody@example\n"
+ " a@p.com\n"
+ ".wooly@example.com\n"
+ "wo..oly@example.com\n"
+ "invalid:email@example.com\n"
+ "@somewhere.com\n"
+ "example.com\n"
+ "@@example.com\n"
+ "a space@example.com\n"
+ "something@ex..ample.com\n"
+ "a\\b@c\n"
+ "----- empty string ----\n\n"
+ "-------- space --------\n"
+ " \n"
+ "someone@somewhere.com.\n"
+ "\\\"\\\"test\\blah\\\"\\\"@example.com\n"
+ "\\\"testblah\\\"@example.com\n"
+ "someone@somewhere.com@\n"
+ "someone@somewhere_com\n"
+ "someone@some:where.com\n"
+ ".\n"
+ "F/s/f/a@feo+re.com\n"
+ "some+long+email+address@some+host-weird-/looking.com\n"
+ "a @p.com\n"
+ "a\\u0020@p.com\n"
+ "a\\u0009@p.com\n"
+ "a\\u000B@p.com\n"
+ "a\\u000C@p.com\n"
+ "a\\u2003@p.com\n"
+ "a\\u3000@p.com\n"
+ "ddjk-s-jk@asl-.com\n"
+ "someone@do-.com\n"
+ "somebody@-p.com\n"
+ "somebody@-.com";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html