java 正则表达式

目录

基础用法

进阶用法

匹配ip地址


三个正则表达式常用类

基础用法

匹配文章中的数字串和字母串


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

/**
 * @description: regex learning
 * @author: bigdata_xiangge
 * @create: 2021.7.18
 **/

public class Regex_basic {
    public static void main(String[] args) {
        // 文本
        String sc = "2001年9月,周杰伦发行了第二张专辑《范特西》," +
                "他除了担任专辑的制作人外,还包办了专辑中所有歌曲的作曲;" +
                "该专辑是周杰伦确立其唱片风格的作品,其中结合中西方音" +
                "乐元素的主打歌《双截棍》成为饶舌歌曲的代表作之一 [32-" +
                "33]  ;该专辑发行后也让周杰伦打开东南亚市场 [32]  ," +
                "并于次年凭借该专辑获得第13届台湾金曲奖最佳专辑制作人奖、" +
                "最佳流行音乐专辑奖以及香港唱片销量大奖颁奖典礼十大销量国" +
                "语唱片等奖项,周杰伦亦凭借专辑中的歌曲《爱在西元前》" +
                "获得第13届台湾金曲奖最佳作曲人奖 [34]  。10月,为李" +
                "玟创作融合中西方音乐元素的歌曲《刀马旦》。12月24日," +
                "发行EP《17Fantasy + Plus》,收录了他在桃园巨蛋演唱会" +
                "上演唱的《你比从前快乐》《世界末日》等歌曲。同年,获" +
                "得第19届十大劲歌金曲颁奖典礼最受欢迎唱作歌星金奖、叱咤" +
                "乐坛流行榜颁奖典礼叱咤乐坛生力军男歌手金奖等奖项。";

        //1. 先创建一个Pattern对象 , 模式对象 ,可以理解成就是一个正则表达式对象
        Pattern pattern = Pattern.compile("[a-zA-Z]+"); // [a-zA-Z]就是字母,+表示多个
        Pattern pattern_num = Pattern.compile("[0-9]+"); // 数字,+表示多个
        Pattern pattern_num_al = Pattern.compile("([0-9]+)|([a-zA-Z]+)"); // 数字或字母,但是不是连续,比如17Fantas就会被分为两次提取(17和Fantas),+表示多个

        //2.创建一个匹配器对象
        // matcher 匹配器按照 pattern(模式/样式),到content文本中去匹配
        // 找到就返回true,否则就返回false
        Matcher matcher = pattern_num_al.matcher(sc);
        // 3.可以开始循环匹配
        while(matcher.find()){
            // 匹配内容 文本放到 matcher.group(0) 里面
            System.out.println("提取到"+matcher.group(0));

        }



    }
}

输出结果

 

进阶用法

匹配指定上下文中的内容

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

public class Regex_up {
    public static void main(String[] args) {
        // 文本
        String sc = "<meta charset=\"UTF-8\">\n" +
                "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\" />\n" +
                "<meta name=\"referrer\" content=\"always\" />\n" +
                "<meta name=\"description\" content=\"周杰伦(Jay Chou),1979年1月18日出生于台湾省新北市,祖籍福建省泉州市永春县,华语流行乐男歌手、原创音乐人、演员、导演、编剧,毕业于淡江中学。2000年发行首张个人专辑《Jay》。2001年发行的专辑《范特西》奠定其融合中西方音乐的风格。2002年举行“The One”世界巡回演唱会。2003年成为美国《时代周刊》封面人物。2004年获得世界音乐大奖中国区最畅销艺人奖。2005年凭借动作片《头文字D》获得金马奖、金像奖最佳新人奖。2006年起连续三年获得世界音乐大奖中国区最畅销艺人奖。2007年自编自导的文艺片《不能说的秘密》获得金马奖年度台湾杰出电影奖。2008年凭借歌曲《青花瓷》获得第19届金曲奖最佳作曲人奖。2009年入选美国CNN评出的“25位亚洲最具影响力人物”,同年凭借专辑《魔杰座》获得第20届金曲奖最佳国语男歌手奖。2010年入选美国《Fast Company》\">\n" +
                "<title>周杰伦(华语流行乐男歌手、音乐人、演员、导演)_百度百科</title>\n" +
                "<link rel=\"shortcut icon\" href=\"/favicon.ico\" type=\"image/x-icon\" />\n" +
                "<link rel=\"icon\" sizes=\"any\" mask href=\"http://baikebcs.bdimg.com/cms/static/baike-icon.svg\">\n" +
                "\n" +
                "<meta name=\"csrf-token\" content=\"\">\n" +
                "<meta itemprop=\"dateUpdate\" content=\"2021-07-17 15:56:46\" />\n" +
                "<meta name=\"keywords\" content=\"周杰伦, 周杰伦早年经历, 周杰伦演艺经历, 周杰伦个人生活, 周杰伦主要作品, 周杰伦社会活动, 周杰伦获奖记录, 周杰伦人物评价\">\n" +
                "<link rel=\"alternate\" hreflang=\"x-default\" href=\"https://baike.baidu.com/item/%E5%91%A8%E6%9D%B0%E4%BC%A6/129156\" />\n" +
                "<link rel=\"alternate\" hreflang=\"zh\" href=\"https://baike.baidu.com/item/%E5%91%A8%E6%9D%B0%E4%BC%A6/129156\" />\n" +
                "<link rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://baike.baidu.com/item/%E5%91%A8%E6%9D%B0%E4%BC%A6/129156\" />\n" +
                "<link rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://baike.baidu.hk/item/%E5%91%A8%E6%9D%B0%E5%80%AB/129156\" />\n" +
                "<link rel=\"canonical\" href=\"https://baike.baidu.com/item/%E5%91%A8%E6%9D%B0%E4%BC%A6/129156\" />\n" +
                "<meta name=\"image\" content=\"https://bkimg.cdn.bcebos.com/smart/023b5bb5c9ea15ce36d31c76c04c2df33a87e9501435-bkimg-process,v_1,rw_1,rh_1,pad_1,color_ffffff?x-bce-process=image/format,f_auto\" />\n" +
                "<meta property=\"og:title\" content=\"周杰伦_百度百科\" />\n" +
                "<meta property=\"og:description\" content=\"周杰伦(Jay Chou),1979年1月18日出生于台湾省新北市,祖籍福建省泉州市永春县,华语流行乐男歌手、原创音乐人、演员、导演、编剧,毕业于淡江中学。2000年发行首张个人专辑《Jay》。2001年发行的专辑《范特西》奠定其融合中西方音乐的风格。2002年举行“The One”世界巡回演唱会。2003年成为美国《时代周刊》封面人物。2004年获得世界音乐大奖中国区最畅销艺人奖。2005年凭借动作片《头文字D》获得金马奖、金像奖最佳新人奖。2006年起连续三年获得世界音乐大奖中国区最畅销艺人奖。2007年自编自导的文艺片《不能说的秘密》获得金马奖年度台湾杰出电影奖。2008年凭借歌曲《青花瓷》获得第19届金曲奖最佳作曲人奖。2009年入选美国CNN评出的“25位亚洲最具影响力人物”,同年凭借专辑《魔杰座》获得第20届金曲奖最佳国语男歌手奖。2010年入选美国《Fast Company》\" />\n" +
                "<meta property=\"og:image\" content=\"https://bkimg.cdn.bcebos.com/smart/023b5bb5c9ea15ce36d31c76c04c2df33a87e9501435-bkimg-process,v_1,rw_1,rh_1,pad_1,color_ffffff?x-bce-process=image/format,f_auto\" />\n" +
                "<meta property=\"og:url\" content=\"https://baike.baidu.com/item/%E5%91%A8%E6%9D%B0%E4%BC%A6/129156\" />\n" +
                "<meta property=\"og:site_name\" content=\"百度百科\" />\n" +
                "<meta property=\"og:type\" content=\"website\" />\n" +
                "<style>";

        //1. 先创建一个Pattern对象 , 模式对象 ,可以理解成就是一个正则表达式对象
        Pattern pattern = Pattern.compile("<link rel=\"alternate\" hreflang=\"x-default\" href=\"(\\S*)\" />"); // <link rel="alternate" hreflang="x-default" href="(找这里的内容)" />
        Pattern pattern_1 = Pattern.compile("link rel=\"alternate\" hreflang=\"(\\S*)\""); // link rel="alternate" hreflang="(找这里的内容)"

        //2.创建一个匹配器对象
        // matcher 匹配器按照 pattern(模式/样式),到content文本中去匹配
        // 找到就返回true,否则就返回false
        Matcher matcher = pattern_1.matcher(sc);
        // 3.可以开始循环匹配
        while(matcher.find()){
            //   \\S* 匹配内容 文本放到 matcher.group(1) 里面
            System.out.println("提取到"+matcher.group(1));

        }



    }
}

输出结果

匹配ip地址

 String ip  = "私有地址(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";
Pattern pattern_ip = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d+");
Matcher matcher_ip = pattern_ip.matcher(ip);

while(matcher_ip.find()){
            //  \\d 匹配内容 文本放到 matcher.group(0) 里面
            System.out.println("提取到"+matcher_ip.group(0));

        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值