import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?=.*(\\.((?![^\\.]$)[^\\.]*)$)|.*@(?:(?:(?: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]?)$))(?=^.{6,320}$)(?:[a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ!#$%&'*+\\/=?^_`\\{|\\}~-]+(?:\\.[a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ!#$%&'*+\\/=?^_`\\{|\\}~-]+)*|\"(?:[\\xE1\\xE0\\xE2\\xE4\\xE3\\xE5\\xE7\\xE9\\xE8\\xEA\\xEB\\xED\\xEC\\xEE\\xEF\\xF1\\xF3\\xF2\\xF4\\xF6\\xF5\\xFA\\xF9\\xFB\\xFC\\xFD\\xFF\\xE6\\xC1\\xC0\\xC2\\xC4\\xC3\\xC5\\xC7\\xC9\\xC8\\xCA\\xCB\\xCD\\xCC\\xCE\\xCF\\xD1\\xD3\\xD2\\xD4\\xD6\\xD5\\xDA\\xD9\\xDB\\xDC\\xDD\\xC6\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f\\s]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")(?:(?=@(?:[0-9]{1,3}.){3}[0-9]{1,3})@(?:(?:(?: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]?))$|(?!@(?:[0-9]{1,3}.){4,}$)@(?:(?:[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 = "jeu de test invalides\n"
+ "-----------\n"
+ "a@123.123.123.123.123\n"
+ "a@123.123.123.123.5\n"
+ "a@222.333.666.888\n"
+ "a@322.111.222.001\n"
+ "a@29.99.352.001\n"
+ "a@124.124.14..124\n"
+ "a@a.f\n"
+ "a@.fr\n"
+ "adresse.de.321.caracteres@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.cccccccccc\n"
+ ".bds@finances.gouv.fr.edu.com\n"
+ "bds.@finances.gouv.fr.edu.com\n\n\n"
+ "jeu de test valides\n"
+ "-----------\n"
+ "a@222.111.11.2.tutu.com\n"
+ "a@222.111.11.333.com\n"
+ "a@222.111.com\n"
+ "a@22d2.11d1.com\n"
+ "a@29.99.252.001\n"
+ "a@022.111.222.001\n"
+ "a@124.124.124.124\n"
+ "a@111.111.111.111\n"
+ "a@222.5.22.001\n"
+ "této@194.168.12.5\n"
+ "abc@a.b.c.azertyuiop\n"
+ "a@b.fr\n"
+ "\"Abc@def\"@example.com\n"
+ "def@example.com\n"
+ "a@b.com\n"
+ "abc@b.fr\n"
+ "abc@a.b.c.fr\n"
+ "abc@a.b.c.azertyuiop\n"
+ "a@b.fr\n"
+ "baltazar.da-silva@douane.finances.gouv.fr\n"
+ "toto@titi.fr\n"
+ "tôto@tïtié.fr\n"
+ "\"tôto\"@tïtié.fr\n"
+ "\"áàâäãåçéèêëíìîïñóòôöõúùûüýÿæÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝÆ\"@titiéà.fr\n"
+ "\"této\"@titiéà.fr\n"
+ "\"tàto\"@titiéà.fr\n"
+ "\"t to\"@titiéà.fr\n"
+ "této@titiéà.fr\n"
+ "této@194.168.12.5\n"
+ "customer/department=shipping@example.com\n"
+ "$A12345@example.com\n"
+ "!def!xyz%abc@example.com\n"
+ "_somename@example.com\n"
+ "Loïc.Accentué@voilà.fr3";
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