注意

读取几十万行记得逐行读取,然后将返回的emailList拼接起来,不然一次性全部读取几十万行会GG

Code :

/**

* 域名后缀维护列表,为保证匹配准确度,仅匹配域名列表里有的邮箱

* 例如 sf@sf.ggadmin@,help@admin.sf.gg 都可以被正确匹配

* sf@sf.gggame@google.com 也可以正确拆分为 sf@sf.gg 和 game@google.com

* 以下域名列表请自行按需添加, | 是间隔符

*

* @param str 传入的含有邮箱的字符串

* @return emailList 已提取的邮箱列表

* @author Levey

* @time 16/1/20 14:35

*/

private static List getEmailList(String str) {

//在此维护域名后缀表

String dn = "com|cn|org|com.cn|xyz|net|gg|gov.cn|love";

Pattern p = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.(" + dn + ")"); //邮箱验证

Matcher m = p.matcher(str);

List emailList = new ArrayList<>();

while (m.find()) {

//update 2016-1-21 10:03:45

//去除包涵连续两个点的邮箱

if(!m.group().contains("..")) {

emailList.add(m.group());

}

}

return emailList;

}

Test:

public static void main(String args[]) {

String str = "tencent.sf.gg@10000@qq.comghghghghg\n" +

"你好leveychen,lev;levey-chen@myema你aaa@this.gov.cn好il.gmail.com悲" +

"剧help@admin.sf.gg了" +

"啊m@levey.com.cnmnihao的都是和";

System.out.println(getEmailList(str));

}

Output:

10000@qq.com

aaa@this.gov.cn

help@admin.sf.gg

m@levey.com.cn

sf@sf.gg

game@google.com

update 2016/01/20 15:09:41

更新已知bug

极端情况下

com 和 co 域名无法正确识别,例如 my@email.comy@email.com

这会优先提取 com域名,然后再去匹配co 域名

abc@mail....com 也能被匹配

//update 2016-1-21 10:03:45

//去除包涵连续两个点的邮箱

Java取邮箱名_邮件开发 中的邮箱地址提取!相关推荐

  1. java dao层代码生成器_实际开发中 dao、entity的代码怎样自动生成?一款工具送给你...

    01 关注"一猿小讲"朋友,都知道以往的文章一直倡导拒绝 CRUD,那到底什么是 CRUD?今天咱们就聊聊 Java 妹子小猿与数据库老头交互的事儿. 产品小汪铿锵有力的说:小猿同 ...

  2. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  3. 二阶声波正演c语言程序_嵌入式开发中的三种程序构架

    关注.星标公众号,直达精彩内容 0.前言 在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题.软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构 ...

  4. java 防止js注入_在WebView中如何让JS与Java安全地互相调用

    在现在安卓应用原生开发中,为了追求开发的效率以及移植的便利性,使用WebView作为业务内容展示与交互的主要载体是个不错的折中方案.那么在 这种Hybrid(混合式) App中,难免就会遇到页面JS需 ...

  5. c语言改变cmd 字体大小_嵌入式开发中常见3个的C语言技巧

    原文:https://www.cnblogs.com/CrazyCatJack/p/6080266.html 1.指向函数的指针 指针不光能指向变量.字符串.数组,还能够指向函数.在C语言中允许将函数 ...

  6. python 邮箱验证_在Django中进行用户注册和邮箱验证的方法

    本文主要介绍我在利用Django写文章时,采用的注册方法.首先说一下整体逻辑思路: •处理用户注册数据, •产生token,生成验证URL, •发送验证邮件, •用户登录网址,进行验证, •验证处理. ...

  7. 暗黑破坏神 用什么 开发的_软件开发中最具破坏性的五种态度

    暗黑破坏神 用什么 开发的 重点 (Top highlight) 成长心态是关键 (GROWTH MINDSET IS KEY) Based on my years of professional s ...

  8. java 发微信视频_微信开发之消息接收--视频消息(八)

    一.消息格式 1357290913 1234567890123456 参数描述 ToUserName 开发者微信号 FromUserName 发送方帐号(一个OpenID) CreateTime 消息 ...

  9. java初始化微信分享_微信开发(一)基于Wx-java的微信分享功能

    最近在做微信服务号开发,简单总结一下,便于自己学习积累和分享给大家: 环境介绍: Spring+ Spring MVC +Mybatis 开发语言: JAVA 微信公众平台的开发中,微信只公布了一个基 ...

  10. h5邮件的邮箱 支持_编写兼容各主流邮箱的HTML邮件

    几乎每个会员制网站都需要通过后台发送邮件来与会员进行沟通,如注册确认.营销推广.这些由站方发给会员的信件,往往纯文本格式已不能满足界面和交互的要 求,这时候我们就需要发送HTML页面.由于HTML邮件 ...

最新文章

  1. 【LeetCode | 二叉树前、中、后序遍历{迭代法}实现】
  2. Mysql高性能优化规范建议,太厉害了!
  3. nyist-组队赛(六)
  4. 云付认证已通过可以支付吗_海科融通丨刷新支付日常问题【附交易操作步奏】...
  5. STL源码剖析 数值算法 copy_backward 算法
  6. 2015.11.27---Java
  7. asp.net DataGridTree表格树控件 下拉树 DropTree c# .net
  8. IT民工系列——通用7130芯片视频采集卡 SDK 兼容任意天敏 宏视 等板卡
  9. wordpress rest api 登录_Python构建RESTful网络服务[Django篇:生成API文档]
  10. leetcode刷题日记-课程表 III
  11. 基于STM32F429的DCMI实现OV7725-NF无缓存摄像头的图像采集HAL库
  12. IMDB 电影评论情感分类数据集
  13. 用Python做图片分类:前置处理,图片的缩小保存
  14. 带轮轮毂长度l和带轮宽b表_B型V带轮的轮缘宽B_轮毂孔径D和轮毂长L.doc
  15. Win 10 部分软件的界面模糊问题
  16. Pycharm提示No Python interpreter selected怎么解决
  17. C语言实验题――打印金字塔
  18. AMBA总线协议(三)——一文看懂AHB总线所有协议总结(AHB2 AHB-Lite AHB5 )
  19. 计算机脚本语言是什么?
  20. 【第一章 走进数据科学】袁博《数据挖掘:理论与算法》

热门文章

  1. python基础 - networkx 绘图总结
  2. 斐讯T1电视盒子刷机指南,已排大坑
  3. WinForm 窗体美化
  4. 人脸识别demo分析(opencv版本)
  5. 计算电磁学中的矩量法及其求解过程介绍
  6. iOS dSYM详解和分析crash,ips文件
  7. iOS crash dSYM
  8. 网页特效php代码大全,网页特效代码
  9. linux vim创建文件配置文件,vim linux 强大的配置文件
  10. 用C语言解“计算圆周率”题