Java 读取文件中的所有电子邮件

Java 读取文件中的所有电子邮件

根据问题的陈述,我们需要找到文件中存在的所有电子邮件。

让我们来探索一下这篇文章,看看如何使用Java编程语言实现。

展示一些示例

实例1

假设有一个给定的段落,其中包含许多不同的电子邮件地址,我们想提取出该段落中的所有电子邮件地址。例如:

“我是一个带有电子邮件boy54@gmail.com的男孩。我的朋友的电子邮件是friend78@gmail.com。”。”

从上面的段落中,我们需要在段落中提取出给定的两个电子邮件地址,即boy54@gmail.com和friend78@gmail.com。

实例2

假设有一个给定的段落,其中包含许多不同的电子邮件地址,我们想提取出该段落中的所有电子邮件地址。例如:

“嘿,我是Rakesh Agarwal,我的电子邮件地址是rakesh@tutorialspoint.com。我的朋友的电子邮件地址是prakash@gmail.com。”

从上面的段落中,我们需要在段落中提取出给定的两个电子邮件地址,即rakesh@tutorialspoint.com和prakash@gmail.com。

实例3

假设有一个给定的段落,其中包含许多不同的电子邮件地址,我们想提取出该段落中的所有电子邮件地址。例如:

“嘿,我是Rakesh Agarwal,我的电子邮件地址是rakesh@yahoo.com。

从上面的段落中,我们需要在段落中提取出给定的电子邮件地址,即rakesh@yahoo.com。

步骤

  • 步骤1 - 导入必要的Java库。

  • 步骤2 - 为匹配模式定义正则表达式。

  • 步骤3 - 分配文本文件的位置或从用户处输入。

  • 步骤4 - 使用匹配器方法匹配所需的格式。

语法

compile() - compile()方法用于多次将文本或表达式与正则表达式进行匹配。compile()方法用于编译作为字符串传递的给定正则表达式。它属于Pattern类。

matcher() - matcher()方法通过解释Pattern在字符序列上执行匹配操作。

readLine() - readLine()方法用于从文本中读取给定行。它从控制台屏幕获取输入,它属于BufferReader类。

多种方法

我们提供了不同的方法来解决问题。

  • 使用从文件中的输入

  • 使用从控制台的用户输入

让我们逐个查看程序及其输出。

方法1:通过使用来自文件的输入

示例

在这种方法中,我们将从系统本身以文本文件的形式接收输入,并过滤出该文本文件中所有的电子邮件地址。

import java.util.regex.*; 
import java.io.*; 
public class Main { 
   public static void main(String[] args) throws IOException { 

      // Regular expression for email id and assigning it to pattern method
      Pattern pat=Pattern.compile( "[a-zA-Z0-9]" + "[a-zA-Z0-9_.]" + "*@[a-zA-Z0-9]" + "+([.][a-zA-Z]+)+");

      //Assigning the location of the text file
      BufferedReader b = new BufferedReader(new FileReader("E:\file1.txt"));

      //reading yo.txt file 
      String l = b.readLine(); 
      while (l != null) { 

         //Matching the required format using matcher method
         Matcher mat = pat.matcher(l); 
         while (mat.find()) { 
            System.out.println(mat.group()); 
         } 
         l = b.readLine(); 
      }  
   } 
}

输出

abhaprakash@123.com
abhaprakash@tutorialspoint.com
rancho45@gmail.com
y@gmail.com
asifa.sandal120098@yahoo.com
welcometoCodespeedy@hotmail.com.abcxyz
12345@qwerty.asd

方法2:通过控制台输入

示例

在这种方法中,我们将从用户获取输入,并筛选出其中所有的电子邮件地址。

import java.util.regex.*; 
import java.io.*; 
import java.util.*;
public class Main { 
   public static void main(String[] args) throws IOException { 

      // Regular expression for email id and assigning it to pattern method
      Pattern pat=Pattern.compile( "[a-zA-Z0-9]" + "[a-zA-Z0-9_.]" + "*@[a-zA-Z0-9]" + "+([.][a-zA-Z]+)+");

      //Taking input from the console
      Scanner b = new Scanner(System.in);
      System.out.println("Write the Paragraph containing email ids");

      //reading yo.txt file 
      String l = b.nextLine(); 
      System.out.println("\nEmail ids are-"); 
      while (l != null) {

         //Matching the required format using matcher method
         Matcher mat = pat.matcher(l); 
         while (mat.find()) { 
            System.out.println(mat.group());
         } 
         l = b.nextLine();
      }  
   } 
}

输出

Write the Paragraph containing email ids
abhaprakash@123.com
abhaprakash@com
abhaprakash$gmail.com
abha
abhaprakash@tutorialspoint.com
rancho45@gmail.com
y@gmail.com
asifa.sandal120098@yahoo.com
welcometoCodespeedy@hotmail.com.abcxyz
12345@qwerty.asd

Email ids are-
abhaprakash@123.com
abhaprakash@tutorialspoint.com
rancho45@gmail.com
y@gmail.com
asifa.sandal120098@yahoo.com
welcometoCodespeedy@hotmail.com.abcxyz
12345@qwerty.asd

在本文中,我们探讨了如何在Java中读取文件中的所有电子邮件。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程