2012-05-13 7 views

Respuesta

4

Si usted está tratando de analizar las direcciones de correo electrónico, se lo recomiendo a utilizar la clase InternetAddress. Es parte de Java EE (si está utilizando Java SE necesita agregar la dependencia javax.mail).

Esa clase es capaz de analizar una cadena que contiene una dirección de correo electrónico como la suya.

String s1 = "kiran<[email protected]>"; 
InternetAddress address = new InternetAddress(s1); 
String email = address.getAddress(); 

creo que de esta manera:

  • Su algoritmo es automáticamente compatible con los estándares
  • Su código es más limpio que el uso de expresiones regulares para extraer la dirección de correo electrónico.
+0

Gracias !! Simple y limpio – Akshay

2

Puede hacer lo siguiente.

String s = "To: John Smith <[email protected]>, Janes Smith\n" 
      + "<[email protected]>, Tom Barter <[email protected]>, Other \n" 
      + "Weird @#[email protected]<>#^Names <[email protected]>, \n" 
      + "Long Long Long Long Name <[email protected]>"; 
    s = s.substring(3); // filter TO: 
    System.out.println(s); 
    // Use DOTALL pattern 
    Pattern p = Pattern.compile("(.*?)<([^>]+)>\\s*,?",Pattern.DOTALL); 

    Matcher m = p.matcher(s); 

    while(m.find()) { 
     // filter newline 
     String name = m.group(1).replaceAll("[\\n\\r]+", ""); 
     String email = m.group(2).replaceAll("[\\n\\r]+", ""); 
     System.out.println(name + " -> " + email); 
    } 
Cuestiones relacionadas