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;
}
}
分享到:
相关推荐
例如,你可以用正则表达式验证电子邮件地址的格式,或者从一大段文本中找出所有的电话号码。 这款V2.0.0.1版本的正则表达式自动生成器提供了一些关键功能,包括: 1. **向导式界面**:对于不熟悉正则语法的用户,...
例如,如果我们想验证一个字符串是否为有效的电子邮件地址,可以使用以下正则表达式: ```java String email = "example@example.com"; boolean isValid = email.matches("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\....
利用正则表达式来进行邮件地址的有效性检查等。 #### 七、总结 《精通正则表达式(第三版)简体中文版》是一本全面介绍正则表达式技术的书籍,不仅覆盖了基本语法和高级特性,还详细讲解了在不同编程环境下的具体...
- 例如,可以使用正则表达式检查输入的IP地址是否符合规范,从网页文本中提取电子邮件地址或者超链接。 2. **核心类** - `java.lang.String`:提供了`matches()`方法,可以直接对字符串进行正则匹配。 - `java....
这对于输入形式的用户输入验证特别有用-验证电子邮件地址等。您还可以从网页或文档中提取电话号码,邮政编码等,在日志文件中搜索复杂的模式,然后您就可以想象得到。无需重新编译程序即可更改规则(模板)。...
正则表达式不仅用于简单的查找和替换,还能在数据验证(如电子邮件地址或电话号码格式检查)、文本分析、网页抓取等场景中发挥巨大作用。通过学习《精通正则表达式》,读者将能够编写更高效、更精确的正则表达式,...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、数据提取等IT领域。在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则...
例如,电子邮件地址的验证可以使用如下的正则表达式: ```java String emailRegex = "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"; ``` 文件"www.pudn.com.txt"可能包含了更多关于如何使用正则表达式进行URL、...
在Delphi XE10中,正则表达式是一种强大的文本处理工具,它允许程序员通过模式匹配来查找、替换或提取字符串中的特定模式。本文将深入探讨Delphi XE10中的正则表达式功能,包括基本概念、语法、API接口以及实际应用...
正则表达式(Regular Expression)是一种模式匹配工具,用于在文本中查找、替换或提取符合特定规则的字符串。在IT行业中,正则表达式被广泛应用于数据验证、文本处理、爬虫程序等领域,特别是在判断手机号码和邮箱...
例如,可能有一个`validateEmail(String email)`方法,只需要传入电子邮件地址,就可以自动检查其格式是否正确,而无需手动编写复杂的正则表达式。 此外,正则表达式还支持多种元字符和预定义字符类,如`.`, `^`, `...
虽然这并不是一篇完整的教程,但它提供了一系列实用的正则表达式实例,如用于判断电子邮件地址、QQ号码、身份证号码格式等。对于需要在实际项目中运用正则表达式的开发者来说,这些实例是非常有价值的参考资料。 ##...
在实际应用中,正则表达式可以用于验证电子邮件地址、URL、电话号码格式,从长文本中提取特定信息,或者清洗和标准化数据。其灵活性和强大功能使得它成为许多开发者不可或缺的工具。为了更好地掌握正则表达式,建议...
例如,你可以用正则表达式从电子邮件地址、电话号码、日期、网址等格式的文本中抽取关键信息。 在UiPath中,正则表达式主要通过“活动”(Activities)来实现,这些活动包括“正则表达式匹配”(RegexMatch)、...
正则表达式(Regular Expression,简称Regex)是用于匹配字符串的一种强大的模式匹配工具,它在IT行业中被广泛应用于数据提取、文本验证、搜索与替换等多个领域。正则表达式的使用虽然强大,但其语法和逻辑相对复杂...
例如,你可以用正则表达式来匹配电子邮件地址、电话号码,甚至是从URL中提取主机名或路径。在本例中,可能使用的正则表达式会针对视频链接的常见格式,如"http(s)://开头,后接域名和视频ID"。 在实现这个功能时,...
在信息技术领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据提取、验证、替换等任务。The Regulator是一款专为正则表达式设计的高效工具,它提供了一个友好的用户界面,帮助开发者...
- **合法性检查**:例如,如何使用正则表达式验证电子邮件地址的有效性,确保符合标准格式。 - **格式化操作**:例如,如何将日期字符串转换为统一格式,或者去除字符串中的空白字符等。 - **文本处理**:例如,...
例如,你可以尝试匹配电子邮件地址,使用正则表达式 `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`,调试器会显示出哪些部分匹配成功。 此外,`RegExp.exe` 这样的程序通常提供了交互式的界面,用户可以输入...