Java使用正则获取括号里面的内容

 更新时间:2023年05月26日 10:41:48   作者:RC_D  
这篇文章主要介绍了Java使用正则获取括号里面的内容问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java正则获取括号里面的内容

其实严格来说是叫获取组里面的内容

先说核心,Matcher的方法group()可以取出括号里面的内容,0是取出所有匹配字符串,即:不会按照组这个说法来匹配,之后就可以依次取出我们用括号括起来的内容。

例子:

    // 创建 Pattern 对象
    Pattern r = Pattern.compile("xx[\s,\S]+?()ss")
    // 现在创建 matcher 对象
    Matcher m = r.matcher("你的字符串");
    //获取括号里面的内容
    m.group(1);

Java对字符串的正则

    //JS数据爬取
    //获取当前页面的核心列表
    String s = page.getHtml().regex(JSConstants.kernelPattern).toString();
    //获取时间、标题和链接
    String pattern = JSConstants.supplementPattern;
    // 创建 Pattern 对象
    Pattern r = Pattern.compile(pattern);
    // 现在创建 matcher 对象
    Matcher m = r.matcher(s);
    //找出匹配项中的全部链接
    extracted(m);
    //提出数据中的所有链接
    private void extracted(Matcher m) {
        while (m.find()) {
            IndexPage indexPage = new IndexPage();
            Date date = new Date();
            String link = m.group(1);
            String title = m.group(2);
            String time = m.group(3);
            try {
                date = new SimpleDateFormat("yyyy-MM-dd").parse(time);
                System.out.println(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            indexPage.setTime(date);
            indexPage.setTitle(title);
            indexPage.setLink("你的网址" + link);
            indexPageList.add(indexPage);
        }
    }

核心代码其实不多。

  • 获取字符串str。
  • 声明一个Pattern对象,调用其compile静态方法,获取一个正常的统配符对象r。
  • 通过r的matcher()方法,给它我们的字符串str,即r.matcher(str),获得一个matcher对象m
  • 最后,就可以通过matcher对象取出我们想要的数据,取出组的话,要使用m的方法group(),0是取出所有匹配字符串,即不会按照组这个说法来匹配,之后就可以依次取出我们用括号括起来的内容。

Java正则获取括号内的数据与排除括号内的数据

正则获取括号内的数据

/**
     * 获取指定字符串中括号内的内容,返回字符串数组
     * @param content
     * @return
     */
    public String[] getBracketContent(String content){
        String [] arr = new String[0];
        Pattern p = Pattern.compile("(?<=\\()[^\\)]+");
        Matcher m = p.matcher(content);
        while(m.find()){
            arr = Arrays.copyOf(arr,arr.length+1);
            arr[arr.length-1]=m.group();
        }
        return arr;
    }

排除括号及括号内的数据

/**
     * 排除括号及括号内的数据
     * @param content
     * @return
     */
    public String getWord(String content){
        return content.replaceAll("[\\[][^\\[\\]]+[\\]]|[\\(][^\\(\\)]+[\\)]", "");
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java中的IP地址和InetAddress类使用详解

    Java中的IP地址和InetAddress类使用详解

    这篇文章主要介绍了Java中的IP地址和InetAddress类使用详解,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • Mybatis-Plus打印sql日志两种方式

    Mybatis-Plus打印sql日志两种方式

    这篇文章主要给大家介绍了关于Mybatis-Plus打印sql日志两种方式,Mybatis-plus是MyBatis增强工具包,用于简化CRUD操作,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Java Web实战之使用三层架构与Servlet构建登录注册模块

    Java Web实战之使用三层架构与Servlet构建登录注册模块

    这篇文章介绍了如何使用三层架构(View, Service, DAO)和JDBCTemplate技术在JavaWeb环境下实现登录和注册功能,详细说明了构建项目的步骤,包括创建数据库表、实体类、DAO层、Service层、Servlet处理及页面设计,需要的朋友可以参考下
    2024-10-10
  • mybaties plus selectMaps和selectList的区别说明

    mybaties plus selectMaps和selectList的区别说明

    这篇文章主要介绍了mybaties plus selectMaps和selectList的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • springboot中使用雪花算法生成雪花ID

    springboot中使用雪花算法生成雪花ID

    本文主要介绍了springboot中使用雪花算法生成雪花ID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 详解Java实现单例的五种方式

    详解Java实现单例的五种方式

    这篇文章主要介绍了详解Java实现单例的五种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Java中类的加载顺序执行结果

    Java中类的加载顺序执行结果

    这篇文章主要介绍了Java中类的加载顺序执行结果的相关资料,需要的朋友可以参考下
    2017-10-10
  • struts2入门(搭建环境、配置、示例)详解

    struts2入门(搭建环境、配置、示例)详解

    这篇文章主要介绍了struts2入门(搭建环境、配置、示例)详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 深入浅出Java中重试机制的多种方式

    深入浅出Java中重试机制的多种方式

    重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。本文就来和大家聊聊Java中重试机制的多种方式
    2023-03-03
  • Java使用双异步实现将Excel的数据导入数据库

    Java使用双异步实现将Excel的数据导入数据库

    在开发中,我们经常会遇到这样的需求,将Excel的数据导入数据库中,这篇文章主要来和大家讲讲Java如何使用双异步实现将Excel的数据导入数据库,感兴趣的可以了解下
    2024-01-01

最新评论