import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:[a-z0-9+!#$%&'*+/=?^_`\\{|\\}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`\\{|\\}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";
final String string = "[a-zA-Z0-9-_.+]+@[a-zA-Z0-9-_.]+\n\n"
+ "ekoprasetyo.crb@outlook.com\n"
+ "db.maulana@gmail.com.\n"
+ " dee.wien@yahoo.com. .\n"
+ "\"deninainggolan@yahoo.co.id\" \n"
+ "Fajar.rohita@hotmail.com klaas knot (firmansya1404@gmail.aero); \n"
+ "dydmm, sss <fransisca+jw@gmail.com>, donny_tri_wardono@yahoo.co.id thank a\n"
+ "\"Helpdesk | Energiem**ine\" <helpdesk@ene---ine.nl>\n"
+ "invalid: John..Doe@example.com \n"
+ "valid: John.Doe@example.com\n\n"
+ "Valid addresses from https://en.wikipedia.org/wiki/Email_address\n"
+ "simple@example.com\n"
+ "very.common@example.com\n"
+ "FirstName.LastName@EasierReading.org\n"
+ "x@example.com\n"
+ "long.email-address-with-hyphens@and.subdomains.example.com\n"
+ "user.name+tag+sorting@example.com\n"
+ "name/surname@example.com\n"
+ "admin@example\n"
+ "example@s.example\n"
+ "\" \"@example.org\n"
+ "\"john..doe\"@example.org\n"
+ "mailhost!username@example.org\n"
+ "\"very.(),:;<>[]\\\".VERY.\\\"very@\\\\ \\\"very\\\".unusual\"@strange.example.com\n"
+ "user%example.com@example.org\n"
+ "user-@example.org\n"
+ "postmaster@[123.123.123.123]\n"
+ "postmaster@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]\n"
+ "_test@[IPv6:2001:0db8:85a3:0000:0000:8a2e:0370:7334]";
final Pattern pattern = Pattern.compile(regex, 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