J023_用正则表达式爬取信息

一、需求描述

请把下面文本中的电话、邮箱、座机号码和热线都爬取出来:

来黑马程序员学习Java,电话:18512566758,18354678765;或者联系邮箱:boniu@itcast.cn;座机电话:010365178955,010-989512356;邮箱bozai@itcast.cn,邮箱2:diei0009@163.com;热线电话:400-618-9090,400-618-4000,4006184000,4006180909。

二、代码实现

java 复制代码
package com.itheima.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestCase2 {
    public static void main(String[] args) {
        method1();
    }

    public static void method1(){
        //文本
        String data = "来黑马程序员学习Java,\n" +
                "      电话:18512566758,18354678765;\n" +
                "      或者联系邮箱:boniu@itcast.cn;\n" +
                "      座机电话:010365178955,010-989512356;\n" +
                "      邮箱bozai@itcast.cn,\n" +
                "      邮箱2:diei0009@163.com;\n" +
                "      热线电话:400-618-9090,400-618-4000,4006184000,4006180909。";

        //定义爬取规则
        String regex = "(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})|\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2}" +
                       "|(400-?\\d{3,7}-?\\d{3,7})";

        //把正则表达式封装成一个pattern对象
        Pattern pattern = Pattern.compile(regex);

        //通过pattern对象去获取查找内容的匹配器对象
        Matcher matcher = pattern.matcher(data);

        //定义循环开始爬取信息
        while (matcher.find()) {
            String result = matcher.group();
            System.out.println(result);
        }
    }
}
相关推荐
Mr_Xuhhh几秒前
C语言字符串与内存操作函数模拟实现详解
java·linux·算法
瑞雪兆丰年兮1 分钟前
[从0开始学Java|第十一天]ArrayList
java·开发语言
夜郎king5 分钟前
基于 Java 实现数九天精准计算:从节气算法到工程化落地
java·开发语言
新缸中之脑7 分钟前
Nanobot:轻量级OpenClaw
java·运维·网络
悟能不能悟11 分钟前
java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges
java·开发语言
马猴烧酒.12 分钟前
【DDD重构|第十三天】DDD 领域驱动设计详解+实战
java·jvm·ide·重构·tomcat·maven·团队开发
烧烧的酒0.o18 分钟前
Java——JavaSE完整教程
java·开发语言·学习
鹏哥哥啊Aaaa24 分钟前
15.idea启动报错
java·ide·intellij-idea
super_lzb26 分钟前
VUE 请求代理地址localhost报错[HPM] Error occurred while trying to proxy request
java·spring·vue·springboot·vue报错
Dream_sky分享26 分钟前
IDEA 2025中TODO找不到
java·ide·intellij-idea