`

Java 使用正则表达式从文件中解析出所有email地址

阅读更多


import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.io.FileUtils;

/**
 * 提取邮件地址
 * @author Roger Federer
 * @date 2013-10-16 下午13:27:00
 */
public class EmailParser {
	
	private final static Pattern emailer = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
	
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//String txt = FileUtils.readFileToString(new File(args[0]));
		String txt = "test@sina.comtest@sina.com test@sina.com test1@sina.com test@sina.com xxxx@sina.com,test@sina.com";
		//System.out.println(txt);
		Matcher matchr = emailer.matcher(txt);
		while (matchr.find()) {
			String email = matchr.group();
			System.out.println(email);
		}
		
		Matcher matcher = emailer.matcher(txt);
		String matchecText = null;
		int matchedFrom = 0;
		int matchedTo = 0;
		while (matcher.find()) {
			matchecText = matcher.group();
			matchedFrom = matcher.start();
			matchedTo = matcher.end();
			System.out.println("matched [" + matchecText + "] from [" + matchedFrom + "] to [" + matchedTo + "]" );
		}
	}

}


运行结果:
test@sina.comtest
test@sina.com
test1@sina.com
test@sina.com
xxxx@sina.com
test@sina.com
matched [test@sina.comtest] from [0] to [17]
matched [test@sina.com] from [27] to [40]
matched [test1@sina.com] from [41] to [55]
matched [test@sina.com] from [56] to [69]
matched [xxxx@sina.com] from [70] to [83]
matched [test@sina.com] from [84] to [97]
分享到:
评论

相关推荐

    正则表达式

    我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    * Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...

    Java开发技术大全(500个源代码).

    dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java ...

    xJavaFxTool是使用javaFx开发的实用小工具集

    其中包括文件复制、Cron表达式生成器、编码转换、加密解密、Time转换、路径转换、二维码生成工具、正则表达式生成工具、网址缩短、转义字符、字符串转换、Mq调试工具、Http调试工具、json格式化编辑工具、图标生成...

    Jakarta commons docs API CHM 格式

    jakarta-oro 一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能 jakarta-regexp 是一个100%纯java正则式处理包,是Jonathan Locke捐给Apache...

    比较全面的:Jakarta-commons jar包(附: chm参考手册 & 资源简介)

    jakarta-oro 一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能 jakarta-regexp 是一个100%纯java正则式处理包,是Jonathan Locke捐给Apache...

    基于JavaFx搭建的实用小工具集合,方便开发过程中的代码编写与调试

    其中包括文件复制、Cron表达式生成器、编码转换、加密解密、Time转换、路径转换、二维码生成工具、正则表达式生成工具、网址缩短、转义字符、字符串转换、Mq调试工具、Http调试工具、json格式化编辑工具、图标生成...

    xJavaFxTool基于JavaFx搭建的实用小工具集合

    其中包括文件复制、Cron表达式生成器、编码转换、加密解密、Time转换、路径转换、二维码生成工具、正则表达式生成工具、网址缩短、转义字符、字符串转换、Mq调试工具、Http调试工具、json格式化编辑工具、图标生成...

    xJavaFxTool-spring是基于springBoot,使用javaFx开发的实用小工具集

    xJavaFxTool-spring是基于...其中包括Cron表达式生成器、正则表达式生成工具、切换Hosts工具、Cmd调试工具、Pdf转换工具、Email群发工具、短信群发工具、图片解析、微信小程序反编译、Zookeeper操作、剪贴板历史等工具

    《javaScrip开发技术大全》源代码

    • sample29.htm 使用正则表达式匹配要替换的子字符串 • sample30.htm 更多的替换字符串 • sample31.htm 将字符串分割成数组 • sample32.htm 转换大小写 • sample33....

    Tcl_TK编程权威指南pdf

    其他使用正则表达式的命令 第12章 脚本库及软件包 确定软件包的位置:auto-path变量 使用软件包 对软件包加载的总结 package命令 基于文件tclindex的库 unknown命令 方便交互 tclshell的库环境 编码风格 ...

    Java学习指南16 项目应用篇

    * 正则表达式 * 反编译技术 * 其他专业技术。。 三、课程体系 〖Java学习指南系列〗:包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发系列〗:

    RED HAT LINUX 6大全

    12.5 在/etc/passwd文件中使用NISisms 232 12.6 使用网络组 232 12.7 解决问题的一些技巧 233 12.8 小结 233 第13章 网络文件系统 235 13.1 NFS安装 235 13.2 启动和停止NFS守护程序 236 13.3 NFS状态 236 13.4 配置...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——...

    asp.net知识库

    .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片...

    Google Android SDK开发范例大全的目录

    4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——...

Global site tag (gtag.js) - Google Analytics