`
sjp524617477
  • 浏览: 1546 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

正则表达式邮件地址提取

阅读更多
public class EmailExtract extends JFrame{

	private static final long serialVersionUID = 1L;

	public EmailExtract(){
		this.setSize(400, 150);
		this.setLocation(350, 300);
		this.setTitle("邮件地址抽取");
	}
	
	public static void main(String[] args) {
		EmailExtract frame = new EmailExtract();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(new EmailExtractPanel());
		frame.setVisible(true);
	}
}

class EmailExtractPanel extends JPanel{
	
	private static final long serialVersionUID = 1L;
	
	private JTextField inField = new JTextField(20);
	private JTextField outField = new JTextField(20);
	public EmailExtractPanel(){
		this.setLayout(new GridLayout(3, 1));
		
		JPanel panel1 = new JPanel();
		panel1.add(new JLabel("输入"));
		panel1.add(inField);
		JButton button1 = new JButton("选择");
		button1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				JFileChooser chooser = new JFileChooser();
				chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
				int i = chooser.showOpenDialog(EmailExtractPanel.this);
			    if (i == JFileChooser.APPROVE_OPTION) {
			    	inField.setText(chooser.getSelectedFile().getAbsolutePath());
			    }
			}
		});
		panel1.add(button1);
		this.add(panel1);
		
		JPanel panel2 = new JPanel();
		panel2.add(new JLabel("输出"));
		panel2.add(outField);
		JButton button2 = new JButton("选择");
		button2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				JFileChooser chooser = new JFileChooser();
				chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
				int i = chooser.showOpenDialog(EmailExtractPanel.this);
			    if (i == JFileChooser.APPROVE_OPTION) {
			    	outField.setText(chooser.getSelectedFile().getAbsolutePath());
			    }
			}
		});
		panel2.add(button2);
		this.add(panel2);
		
		JPanel panel3 = new JPanel();
		JButton okButton = new JButton("确定");
		okButton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(!"".equals(inField.getText()) && !"".equals(outField.getText())){
					File inFile = new File(inField.getText());
					File outFolder = new File(outField.getText() + "\\邮件地址输出");
					if(!outFolder.exists()){
						outFolder.mkdir();
					}
					try {
						emialExport(inFile, outFolder);
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					System.exit(0);
				}
			}
		});
		panel3.add(okButton);
		this.add(panel3);
	}
	
	private void emialExport(File inFile, File outFolder) throws IOException{
		if(inFile.isDirectory()){
			File loutFolder = new File(outFolder, inFile.getName());
			if(!loutFolder.exists()){
				loutFolder.mkdir();
			}
			File[] fileList = inFile.listFiles();
			for(File file : fileList){
				emialExport(file, loutFolder);
			}
		}else{
			File toFile = new File(outFolder, inFile.getName());
			FileWriter fw = new FileWriter(toFile);
			fw.append(getEmailList(getStringFromFile(inFile)));
			fw.flush();
			fw.close();
		}
	}
	
	public String getStringFromFile(File f) throws FileNotFoundException{
		StringBuilder sb = new StringBuilder("");
		Scanner in = new Scanner(f);
		while(in.hasNextLine()){
			sb.append(" " + in.nextLine());
		}
		in.close();
		return sb.toString();
	}
	
	private String getEmailList(String emailText){
		String email = "";
		String emailList = "";
		Pattern p = Pattern.compile("[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+");   
        Matcher m = p.matcher(emailText);   
        while (m.find())
        {
        	email = m.group();
        	emailList += email + ";";
        }
        return emailList;
	}
}
0
0
分享到:
评论

相关推荐

    Delphi 10.4 最新版正则表达式(TRegExpr)源码

    这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索复杂的模式,然后您就可以想象得到。无需重新编译程序即可更改规则(模板)。...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/...

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    18.C#字符串和正则表达式参考手册 影印版

    C#字符串和正则表达式参考手册 目 录 第1章 系统处理文本的方式 1 1.1 .NET Framework 1 1.1.1 公共语言运行时 2 1.1.2 .NET Framework类库 3 1.2 文本是一种数据类型 4 1.2.1 C#的数据类型 5 1.2.2 字符和字符集 6 ...

    aaa.rar_提取网页_正则_正则表达式_网页_邮件提取

    使用正则表达式提取网页中的有用内容,提取网页中的URL地址,提取网页中的电子邮件E-mail地址

    正则表达式

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它...

    Javascript 与正则表达式

    5、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 6、提取信息中的中国手机号码:(86)*0*13\d{9} 7、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 8、提取信息中的中国...

    正则表达式的应用

    1、时间解析程序 2.确认有效电子邮件格式 3.清理输入字符串 4.更改日期格式 5.提取 URL 信息 6.提取文本 7.根据给定的标识查找后面的说明... 利用正则表达式去除字串中重复的字符的算法程序:

    social-media-profiles-regexs:使用正则表达式提取社交媒体配置文件及其他内容

    符合社交媒体资料的正则表达式该存储库列出了正则表达式,以匹配社交媒体配置文件的URL并从中提取信息。 因此,如果您在Web上的某个地方(例如找到指向此存储库的超链接,则此存储库中的正则表达式将使您发现它是...

    风越批量文本提取器 _可将HTML等文件中指定内容存入数据库、HTML、文本文件.zip

    提取文件中全部email邮件地址 提取文件中全部互联网址(无参数) 提取文件中全部互联网址(带参数) 提取HTML文件中body的文本内容 提取HTML文件中title和body的文本内容 提取HTML文件中textarea的文本内容 提取...

    python中正则表达式与模式匹配

     在之前找工作过程中,面试时经常被问到会不会python,懂不懂正则表达式。心里想:软件的东西和芯片设计有什么关系?咱也不知道因为啥用这个,咱也不敢问啊!在网上搜索到了一篇关于脚本在ASIC领域中应用的文章...

    email_phone_scraper:带有python bs4的电子邮件和电话抓取器,请求,正则表达式

    请求,正则表达式这涉及下载文本的请求,以查找其他页面链接(因此,该演示版又深入了一页,但以“与我们联系”为目标) 写入json,使用缩进将json打印到终端写入csv 电子邮件正则表达式非常匆忙且基础,绝对需要...

    邮件地址抽取

    正则表达式提取文件中邮件地址以及java文件选择器的运用,纯属练习

    网页抓取邮件地址程序

    使用正则表达式实现的网页提取邮箱地址功能

    风越批量文本提取、网页采集器

    提取文件中全部email邮件地址 提取文件中全部互联网址(无参数) 提取文件中全部互联网址(带参数) 提取HTML文件中body的文本内容 提取HTML文件中title与body的文本内容 提取HTML文件中textarea的文本内容 提取HTML...

    filter-reply-mails:过滤和修剪从 IMAP 文件夹中获取的邮件的纯文本和 html 部分

    一个正则表达式文件包含邮件纯文本部分的正则表达式,而另一个文件包含 HTML 部分的正则表达式。 这些文件中的每一行定义一个正则表达式。 CSS 选择器用于删除匹配的元素。 HTML 部分可以引用图像,因此所有引用的...

    CVparser:CVparser是用于从CVresumes解析或提取数据的软件

    正则表达式正则表达式用于提取简历的一部分。 例如,一个体验部分可能包含单词experience的多个实例。 因此,必须使用严格的正则表达式来提取经验部分。 解决方案是获取与以下内容完全匹配的单词experience的索引 ...

    java实现校园一卡通源码-cv-extractor:cv提取器

    因此,必须使用严格的正则表达式来提取经验部分。 解决方案是获取与以下内容完全匹配的单词体验的索引 EXPERIENCE ("\\b(Experience(s?)|EXPERIENCE(S?))\\b") 解析器会忽略小写的经验或部分标题之后的经验。 相同的...

    Java-PHP-C#

    ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取字符串的一部分(具体用法你可以阅读手册). 比如说,我们想从 path/URL 提取文件名 – 下面的代码就是你需要: ereg("([^\\/]*)$", $pathOrUrl, $regs);...

    email-address:用于电子邮件地址魔法的 node.js 模块

    电子邮件地址助手 确保给定输入是有效地址的正则表达式。 该模块确保我们使用相同的方法来验证我们所有服务中的给定电子邮件地址。 它最初是从 debitoor-app source/util 文件夹中提取到它自己的模块中。概述辅助...

Global site tag (gtag.js) - Google Analytics