经常用到的提取手机、电话、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"; 的字串
不要求前面有字符
发表评论
-
java字符串处理
2012-07-06 09:51 638substring() 它有两种形式,第一种是:Stri ... -
java中的正则表达式详解
2012-07-06 09:37 1275转自:http://gstarwd.i ... -
MTK修改音乐播放器
2012-07-06 09:29 732目标文件:Resource_audply_skins.c ... -
超强 DOM增删改,js日历综合案例实现
2012-07-05 20:44 816DOM增删改,js日历综合案例实现 效果图: 实现 ... -
构建自定义组件
2012-07-03 13:42 807构建自定义组件 ... -
构建自定义组件
2012-07-03 12:15 643构建自定义组件 ... -
Flex文件上传
2012-07-02 10:09 661今天花了一点时间 ... -
Changing the layout direction of a form item in Flex
2012-07-02 10:09 609The following example shows h ... -
Flex 与 JavaScript 实现交互!!
2012-07-02 10:09 706.style{ paddin ... -
OpenCms7.5.3发布
2012-07-01 09:26 8172010年8月18日,OpenCms7.5.3发布。 ... -
挨踢求职之旅
2012-07-01 09:26 467大学的时候,学的 ... -
Ext 4 概述(六)之Grid
2012-07-01 09:25 592这次升级Ext 4全部 ... -
一些免费,甚至开源的.net开发工具
2012-07-01 09:25 1183一些免费,甚至 ... -
AS类库推荐
2012-06-30 11:12 597AS类库推荐 2011年11月17日 TweenLite ... -
Flex 收藏
2012-06-30 11:12 576Flex 收藏 2010年06月15日 flex官方网址 ... -
as3 字符处理函数
2012-01-20 02:25 1447as3 字符处理函数 2011年04月22日 原地址:h ... -
js+正文规则 高亮搜索关键字(二)
2012-01-20 02:24 633js+正文规则 高亮搜索关键字(二) 2010年11月16日 ... -
常用的正则表达式
2012-01-20 02:24 601常用的正则表达式 2010年09月09日 常用表达式: ... -
四(4)寒假作业
2012-01-19 10:14 615四(4)寒假作业 2012年01 ... -
《墨水心》(Inkheart)
2012-01-19 10:14 513《墨水心》(Inkheart) 2012年01月12日 ...
相关推荐
Java正则表达式Java正则表达式Java正则表达式Java正则表达式
本文写作时,一个包含了用正则表达式进行文本处理的Java规范需求(Specification Request)已经得到认可,你可以期待在JDK的下一版本中看到它。 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache...
java,正则表达式,详解,java正则表达式,PDF
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式java正则表达式
正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子
JAVA正则表达式JAVA正则表达式JAVA正则表达式
最新手机号码、电话号码正则表达式
java 验证手机号码 身份证 email url 以及其他常用的正则表达式的验证方法。
Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~
java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效
java实现用正则表达式的方法提取html中的信息,可以提取标题,正文,链接等。经过运行,没问题的
java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解java正则表达式详解
java正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdfjava正则表达式.pdf
Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习
JAVA正则表达式应用:任意输入一串字符串 如何输入exit退出程序;从输入的字符串中判断是否包含手机号码 正则表达式可以使用" +86| 86 1 d{10}" 如果包含请将其在控制台打印出来 否则输出不包含字符串 ...
主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧,需要的朋友可以参考下
java正则表达式验证IP地址
Java正则表达式应用总结
java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式