正则表达式的使用

正则表达式的使用

package com.ftn.regexp;

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

//演示正则表达式的使用
public class Regexp_ {
    public static void main(String[] args) {

        //假定,编写了爬虫,从百度页面得到如下文本
//        String content = "111JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中)," +
//                "主要包括(斜体代表接口,需驱动程序提供者来具体实现):\n" +
//                "DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求," +
//                "向调用者返回相应的数据库连接(Connection)。Driver:驱动程序," +
//                "会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接" +
//                "(Connection)。Connection:数据库连接,负责与进行数据库间通讯," +
//                "SQL执行以及事务处理都是在某个特定Connection环境中进行的。" +
//                "可以产生用以执行SQL的Statement。Statement:" +
//                "用以执行SQL查询和更新(针对静态SQL语句和单次执行)。PreparedStatement:" +
//                "用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。" +
//                "CallableStatement:用以调用数据库中的存储过程。SQLException:" +
//                "代表在数据库连接的建立和关闭和SQL语句的执行过程中发生了例外情况(即错误)。999";


//        String content = "      </a></li><li><a href=\"//www.bilibili.com/v/popular/all\" target=\"_blank\"><div class=\"round orange\"><i class=\"bilifont bili-remen\"></i></div>\n" +
//                "            穿越异世界,成为猫耳魔法师!\n" +
//                "          </p></a></div><div class=\"item\" style=\"z-index:4;\"><a data-loc-id=\"3197\" target=\"_blank\"><img src=\"https://i0.hdslb.com/bfs/sycp/creative_img/202110/1c6bb9493d605cf34dfdb82f0d0c220f.jpg@880w_388h_1c_95q\" alt=\"管它是什么,进攻就可以了\"><p class=\"title\"><i class=\"bypb-icon\"></i>\n" +
//                "            管它是什么,进攻就可以了\n" +
//                "          </p></a></div><div class=\"item\" style=\"z-index:3;\"><a data-loc-id=\"3197\" target=\"_blank\"><img src=\"//i0.hdslb.com/bfs/feed-admin/c3ede9e61e4f142b434343d0cf6d4b212005f535.jpg@880w_388h_1c_95q\" alt=\"瘦小的湖南妹子连吃2碗!\"><p class=\"title\"><!---->\n" +
//                "            瘦小的湖南妹子连吃2碗!\n" +
//                "          </p></a></div><div class=\"item\" style=\"z-index:2;\"><a data-loc-id=\"3197\" target=\"_blank\"><img src=\"//i0.hdslb.com/bfs/feed-admin/7962ef40e7ae1fc647bf513ea8df10cbd97146d4.jpg@880w_388h_1c_95q\" alt=\"极致废物利用!省钱收纳全部拿捏了!\"><p class=\"title\"><!---->\n" +
//                "            极致废物利用!省钱收纳全部拿捏了!\n" +
//                "          </p></a></div><div class=\"item\" style=\"z-index:1;\"><a data-loc-id=\"3197\" target=\"_blank\"><img src=\"//i0.hdslb.com/bfs/feed-admin/8e941002ed188a9bfe3dde06466a70e1f459d8d6.png@880w_388h_1c_95q\" alt=\"准备好被“骗”了吗?\"><p class=\"title\"><!---->\n" +
//                "            准备好被“骗”了吗?\n" +
//                "          </p></a></div></div><div class=\"trigger\"><span class=\"on\"></span><span></span><span></span><span></span><span></span></div><a href=\"//www.bilibili.com/blackboard/topic_list.html\" class=\"more\">\n" +
//                "    更多";

        String content = "私有地址(Private address)属于非注册地址,专门为组织机构内部使用。\n" +
                "以下列出留用的内部私有地址\n" +
                "A类 10.0.0.0--10.255.255.255\n" +
                "B类 172.16.0.0--172.31.255.255\n" +
                "C类 192.168.0.0--192.168.255.255";


        //要求提取文章中所有英文单词
        //要求提取文章中所有数字
        //要求提取文章中所有数字及英文单词
        //要求提取文章中标题
        //要求提取文章中 ip 地址

        //(1).传统方法,使用遍历,代码量大,效率低
        //(2).正则表达式

        //1.先创建一个Pattern对象,模式对象,可以理解成一个正则表达式对象
        Pattern pattern = Pattern.compile("[a-zA-Z]+");
        Pattern pattern1 = Pattern.compile("[0-9]+");
        Pattern pattern2 = Pattern.compile("([a-zA-Z]+)|([0-9]+)");
        Pattern pattern3 = Pattern.compile("alt=\"(\\S*)\"");
        Pattern pattern4 = Pattern.compile("\\d+.\\d+.\\d+.\\d+");
        //2.创建一个匹配器对象
        //理解:就是 matcher 匹配器按照 pattern(模式/样式),到 content 文本中去匹配
        //找到返回 true,否则返回 false
        Matcher matcher = pattern4.matcher(content);
        //3.循环匹配
        while (matcher.find()){
            System.out.println("找到:" + matcher.group(0));
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值