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:
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