import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=\\b)\\w([\\w\\.\\-_0-9])*(@| at )[\\w0-9][\\w\\-_0-9]*((\\.| DOT )[\\w\\-_0-9]+)+(?=\\b)";
final String string = "test@email.com\n"
+ "test-user@email.com\n"
+ "test.user@email.com\n"
+ "33test33@email.com\n"
+ "test99user-_22@email.com\n"
+ "test@e.mail\n"
+ "test@g.mail\n"
+ "test AT email.com\n"
+ "test AT email DOT com\n"
+ "test AT email dot com\n"
+ "test at email.com\n"
+ "test@email DOT com\n"
+ "this is not an email @twitterUser\n"
+ "this is just an an string el@\n\n\n\n"
+ " Valid\n"
+ "-------\n"
+ "first.last@iana.org\n"
+ "1234567890123456789012345678901234567890123456789012345678901234@iana.org\n"
+ "x@x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x23456789.x2\n"
+ "1234567890123456789012345678901234567890123456789012345678@12345678901234567890123456789012345678901234567890123456789.12345678901234567890123456789012345678901234567890123456789.123456789012345678901234567890123456789012345678901234567890123.iana.org\n"
+ "user+mailbox@iana.org\n"
+ "customer/department@iana.org \n"
+ "customer/department=shipping@iana.org\n"
+ "cal(woo(yay)hoopla)@iamcal.com\n"
+ "cal(foo\\@bar)@iamcal.com\n"
+ "cal(foo\\)bar)@iamcal.com\n"
+ "first(Welcome to the (\"wonderful\" (!)) world of email)@iana.org\n"
+ "pete(his account)@silly.test(his host)\n"
+ "c@(Chris's host.)public.example\n\n"
+ " Invalid\n"
+ "---------\n"
+ "first@...........com\n"
+ "first.last@sub.do,com\n"
+ "first\\@last@iana.org\n"
+ "first.last\n"
+ ".first.last@iana.org\n"
+ "first.last.@iana.org\n"
+ "\"first\"last\"@iana.org\n"
+ "\"\"\"@iana.org\n"
+ "first\\\\@last@iana.org\n"
+ "Doug\\ \\\"Ace\\\"\\ Lovell@iana.org\n"
+ "()[]\\;:,><@iana.org\n"
+ "test@.\n"
+ "test@[123.123.123.123\n"
+ "test@123.123.123.123]";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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