需求:
把下面文本中的座机电话,邮箱,手机号,热线都爬取出来。
手机号:18512516758,18512508907或者联系邮箱:asd123@qq.com,座机电话:01036517895,010-98951256邮箱:qwer@qq.com,热线电话:400-618-9090 ,400-618-4000,4006184000,4006189090手机号的正则表达式:1[3-9]\d{9}
代码示例:
package com.liming;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo10 {
public static void main(String[] args) {
String s = "热线咨询," +
"电话:18512516758,18512508907" + "或者联系邮箱:asd123@qq.com," +
"座机电话:01036517895,010-98951256" + "邮箱:qwer@qq.com," +
"热线电话:400-618-9090 ,400-618-4000,4006184000,4006189090";
String regex = "(1[3-9]\\d{9})|(\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2})" +
"|(0\\d{2,3}-?[1-9]\\d{4,9})" +
"(400-?[1-9]\\d{2}-?[1-9]\\d{3})";
//1.获取正则表达式的对象
Pattern p = Pattern.compile(regex);
//2.获取文本匹配器的对象
//利用m去读取s,会按照p的规则找里面的小串
Matcher m = p.matcher(s);
//3.利用循环获取每一个数据
while (m.find()) {
String str = m.group();
System.out.println(str);
}
}
}