`
ocw356og
  • 浏览: 24601 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

经常用到的提取手机、电话、Email联系方式的几个java正则表达式

 
阅读更多

    经常用到的提取手机、电话、Email联系方式的几个java正则表达式 收藏
  以前网页信息提取的时候,其中有很多时候要提取网页文字中的一些联系方式,主要就是手机,电话和email
  这几个正则表达式写到这里,算是一个笔记吧,分享给需要的朋友,不一定通用,但可以解决大部分问题
  1,正则 手机:\\D0?(1\\d{10})(\\D|$) 电话:\\D((\\+86-)?((0\\d{2,3}\\-)?\\d{7,8}))(\\D|$) Email:\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*  手机reg只提取手机号码,电话reg只提取电话
  2,测试代码: String str = "电话:13668978333"; String reg = "\\D0?(1\\d{10})(\\D|$)"; String tel = t.getValue(str, reg); // str = "电话:0370-6541114[白天]电话0370-6541000[晚上]"; // str = "电话:0734-6570769,小灵通5386568"; // str = "电话:13402158967"; // str = "电话:+86-0734-63702731 手机:..."; // str = "市场办公电话-010-82238887"; reg = "\\D((\\+86-)?((0\\d{2,3}\\-)?\\d{7,8}))(\\D|$)"; tel = t.getValue(str, reg); System.out.println(tel); String str = "电话:13668978333"; String reg = "\\D0?(1\\d{10})(\\D|$)"; String tel = t.getValue(str, reg); // str = "电话:0370-6541114[白天]电话0370-6541000[晚上]"; // str = "电话:0734-6570769,小灵通5386568"; // str = "电话:13402158967"; // str = "电话:+86-0734-63702731 手机:..."; // str = "市场办公电话-010-82238887"; reg = "\\D((\\+86-)?((0\\d{2,3}\\-)?\\d{7,8}))(\\D|$)"; tel = t.getValue(str, reg); System.out.println(tel);  3,getValue方法 /** * 得一正则表达对应的内容 * * @param con * @param reg * @return */ private String getValue(String con, String reg){ Pattern p = Pattern.compile(reg); Matcher m = p.matcher(con); String res = ""; while (m.find()) { res = m.group(1); logger.debug(res); } return res; } /** * 得一正则表达对应的内容 * * @param con * @param reg * @return */ private String getValue(String con, String reg){ Pattern p = Pattern.compile(reg); Matcher m = p.matcher(con); String res = ""; while (m.find()) { res = m.group(1); logger.debug(res); } return res; }  注意:如果目标字串以数字开头,要求目标字串必须以非数字开头(即号码前至少要有一个字符,在实际当中,这是非常可能的)
  我一直想写一个如果一目标字串以号码开头,号码前没有字符(像str = "134777766666")或者是有字符但不是\\d字符(像str = "电话:134777766666"),即兼顾这两种情况,但由于能力有限,一直写不出来
  如果如位技术大牛能留下正确的reg,不胜感激
  闲下来又改进了一下手机和电话的正则 手机:(?<!\\d)0?(1\\dquesauthor)(?!\\d) 电话:(?<!\\d)((\\+86-)?((0\\d{2,3}\\-)?\\d{7,8}))(?!\\d) 手机:(?<!\\d)0?(1\\dquesauthor)(?!\\d) 电话:(?<!\\d)((\\+86-)?((0\\d{2,3}\\-)?\\d{7,8}))(?!\\d)  这样就可以直接用目标串形如: str="010-12345678"; 的字串
  不要求前面有字符
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics