`
sjp524617477
  • 浏览: 1604 次
  • 性别: 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
分享到:
评论

相关推荐

    正则表达式自动生成器 V2.0.0.1 官方多语版

    例如,你可以用正则表达式验证电子邮件地址的格式,或者从一大段文本中找出所有的电话号码。 这款V2.0.0.1版本的正则表达式自动生成器提供了一些关键功能,包括: 1. **向导式界面**:对于不熟悉正则语法的用户,...

    三目运算符+正则表达式

    例如,如果我们想验证一个字符串是否为有效的电子邮件地址,可以使用以下正则表达式: ```java String email = "example@example.com"; boolean isValid = email.matches("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\....

    精通正则表达式(第三版)简体中文版

    利用正则表达式来进行邮件地址的有效性检查等。 #### 七、总结 《精通正则表达式(第三版)简体中文版》是一本全面介绍正则表达式技术的书籍,不仅覆盖了基本语法和高级特性,还详细讲解了在不同编程环境下的具体...

    Java正则表达式 Java 正则表达式

    - 例如,可以使用正则表达式检查输入的IP地址是否符合规范,从网页文本中提取电子邮件地址或者超链接。 2. **核心类** - `java.lang.String`:提供了`matches()`方法,可以直接对字符串进行正则匹配。 - `java....

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

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

    精通正则表达式中文版英文版_中文版为扫描版

    正则表达式不仅用于简单的查找和替换,还能在数据验证(如电子邮件地址或电话号码格式检查)、文本分析、网页抓取等场景中发挥巨大作用。通过学习《精通正则表达式》,读者将能够编写更高效、更精确的正则表达式,...

    常用正则表达式HTML,JAVA合集

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、数据提取等IT领域。在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则...

    java_zhengze.rar_正则表达式_正则表达式 java

    例如,电子邮件地址的验证可以使用如下的正则表达式: ```java String emailRegex = "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"; ``` 文件"www.pudn.com.txt"可能包含了更多关于如何使用正则表达式进行URL、...

    delphi xe 10 正则表达式

    在Delphi XE10中,正则表达式是一种强大的文本处理工具,它允许程序员通过模式匹配来查找、替换或提取字符串中的特定模式。本文将深入探讨Delphi XE10中的正则表达式功能,包括基本概念、语法、API接口以及实际应用...

    正则表达式判断手机邮箱

    正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或提取符合特定规则的字符串。在IT行业中,正则表达式被广泛应用于数据验证、文本处理、爬虫程序等领域,特别是在判断手机号码和邮箱...

    java 正则表达式应用jar包 regex-smart.jar

    例如,可能有一个`validateEmail(String email)`方法,只需要传入电子邮件地址,就可以自动检查其格式是否正确,而无需手动编写复杂的正则表达式。 此外,正则表达式还支持多种元字符和预定义字符类,如`.`, `^`, `...

    正则表达式 正则表达式资料 正则表达式教程

    虽然这并不是一篇完整的教程,但它提供了一系列实用的正则表达式实例,如用于判断电子邮件地址、QQ号码、身份证号码格式等。对于需要在实际项目中运用正则表达式的开发者来说,这些实例是非常有价值的参考资料。 ##...

    关于正则表达式的应用(正则表达式)

    在实际应用中,正则表达式可以用于验证电子邮件地址、URL、电话号码格式,从长文本中提取特定信息,或者清洗和标准化数据。其灵活性和强大功能使得它成为许多开发者不可或缺的工具。为了更好地掌握正则表达式,建议...

    【RPA之家转载视频教程6】在UiPath中学习正则表达式有助于数据提取--uipathellerners.com网站-RPA公司.rar

    例如,你可以用正则表达式从电子邮件地址、电话号码、日期、网址等格式的文本中抽取关键信息。 在UiPath中,正则表达式主要通过“活动”(Activities)来实现,这些活动包括“正则表达式匹配”(RegexMatch)、...

    超好用的正则表达式可视化调试工具

    正则表达式(Regular Expression,简称Regex)是用于匹配字符串的一种强大的模式匹配工具,它在IT行业中被广泛应用于数据提取、文本验证、搜索与替换等多个领域。正则表达式的使用虽然强大,但其语法和逻辑相对复杂...

    正则表达式的妙用

    例如,你可以用正则表达式来匹配电子邮件地址、电话号码,甚至是从URL中提取主机名或路径。在本例中,可能使用的正则表达式会针对视频链接的常见格式,如"http(s)://开头,后接域名和视频ID"。 在实现这个功能时,...

    正则表达式工具The Regulator

    在信息技术领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据提取、验证、替换等任务。The Regulator是一款专为正则表达式设计的高效工具,它提供了一个友好的用户界面,帮助开发者...

    正则表达式经典实例

    - **合法性检查**:例如,如何使用正则表达式验证电子邮件地址的有效性,确保符合标准格式。 - **格式化操作**:例如,如何将日期字符串转换为统一格式,或者去除字符串中的空白字符等。 - **文本处理**:例如,...

    非常方便的正则表达式调试器,自己需替换的内容作为示例匹配正则表达式和目标内容,Run出结果

    例如,你可以尝试匹配电子邮件地址,使用正则表达式 `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`,调试器会显示出哪些部分匹配成功。 此外,`RegExp.exe` 这样的程序通常提供了交互式的界面,用户可以输入...

Global site tag (gtag.js) - Google Analytics