Programa Java para leer todos los correos electrónicos presentes en un archivo dado

Dado un archivo como input.txt que contiene algunas identificaciones de correo electrónico que se mezclan con otros datos. La tarea es leer este archivo de entrada línea por línea y, si se encuentra alguna identificación de correo electrónico en esa línea, escribir esa identificación de correo electrónico en otro archivo, que es output.txt .

Ejemplo:

Entrada: entrada.txt Salida: salida.txt


Enfoque : para detectar la identificación del correo electrónico en ese archivo, una solución simple es la expresión regular . Primero, tenemos que formar una expresión regular para la identificación del correo electrónico . Cada vez que una string en el archivo input.txt coincida con la expresión regular que formamos para la identificación del correo electrónico, esa string coincidente se escribirá en el archivo output.txt.

Se dice que una string es una identificación de correo electrónico si esa string sigue los siguientes criterios:

  • El primer carácter puede ser un alfabeto en minúsculas o mayúsculas o puede contener cualquier dígito del 0 al 9. Para este criterio, la expresión regular [a-zA-Z0-9]
  • El resto de caracteres después del primer carácter y hasta llegar a @, los caracteres pueden ser letras mayúsculas o minúsculas o puede contener cualquier dígito del 0 al 9 o el símbolo especial ‘_’ y ‘.’ .Para este criterio, expresión regular [a-zA-Z0-9_.]*
  • Después de los dos criterios anteriores, la string contiene el símbolo ‘@’. Después de esa string debe contener cualquier alfabeto en minúsculas o mayúsculas o puede contener cualquier dígito del 0 al 9. Para este criterio, la expresión regular @[a-zA-Z0-9 ]
  • Después de contener el símbolo ‘@’, la string debe contener ‘.’ símbolo y después de eso, la string debe contener cualquier alfabeto en minúsculas o mayúsculas. Para este criterio, la expresión regular [.][a-zA-Z]

A continuación se muestra la implementación del enfoque anterior:

Java

// Java program to extract the
// email ids from a given text file
  
import java.util.regex.*;
import java.io.*;
  
class EmailIdExtraction {
    public static void extractEmailIds(
        BufferedReader br,
        PrintWriter pw,
        Pattern p)
    {
  
        String line = br.readLine();
  
        while (line != null) {
  
            Matcher m = p.matcher(line);
  
            // If any match
            while (m.find()) {
  
                // write the email id
                // to output.txt file
                pw.println(m.group());
            }
  
            // Goto next line in input.txt file
            line = br.readLine();
        }
  
        pw.flush();
    }
  
    // Driver code
    public static void main(String[] args)
        throws IOException
    {
  
        // PrintWriter for writing email id
        // to output.txt file
        PrintWriter pw
            = new PrintWriter("output.txt");
  
        // Compile() argument is the
        // regular expression for email id
        Pattern p
            = Pattern.compile(
                "[a-zA-Z0-9]"
                + "[a-zA-Z0-9_.]"
                + "*@[a-zA-Z0-9]"
                + "+([.][a-zA-Z]+)+");
  
        // BufferedReader for reading
        // from input.txt file
        BufferedReader br
            = new BufferedReader(
                new FileReader("input.txt"));
  
        // Calling extractEmailIds
        extractEmailIds(br, pw, p);
    }
}

Aporte:

Hola, mi nombre es Bishal Dubey y mi ID de correo electrónico es dubey.bishal159@gmail.com. Bienvenido a Geeksgorgeeks, un portal de informática para geeks. Contiene artículos de informática y programación bien escritos, bien pensados ​​y bien explicados, cuestionarios. Mi hermano, Bikash Dubey, con una identificación de correo electrónico bikashdubey42@gmail.com, y mi amigo Tanu Jain, con una identificación de correo electrónico tanu_jain@gmail.com, contribuyendo a geeksforgeeks. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes enviar tu artículo por correo electrónico a contrib@geeksforgeeks.org.

Producción:

dubey.bishal159@gmail.com
bikashdubey42@gmail.com
tanu_jain@gmail.com
contribuir@geeksforgeeks.org

Publicación traducida automáticamente

Artículo escrito por Bishal Kumar Dubey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *