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学习笔记之异常处理

    Java学习笔记之异常处理

    这篇文章主要为大家详细介绍了Java学习笔记之异常处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Java实现游戏飞机大战-III的示例代码

    Java实现游戏飞机大战-III的示例代码

    这篇文章主要为大家介绍了如何利用Java实现经典的游戏之飞机大战,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试
    2022-02-02
  • JVM详解之汇编角度理解本地变量的生命周期

    JVM详解之汇编角度理解本地变量的生命周期

    这篇文章主要介绍了JVM详解之汇编角度理解本地变量的生命周期,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • java实现字符串反转案例

    java实现字符串反转案例

    这篇文章主要为大家详细介绍了java实现字符串反转,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 解决IDEA2020.1.2IDEA打不开的问题(最新分享)

    解决IDEA2020.1.2IDEA打不开的问题(最新分享)

    由于idea安装多了某个jar,点击出现读条后闪退情况,接下来通过本文给大家分享解决IDEA2020.1.2IDEA打不开的问题,非常不错,具有一定的参考借鉴价值,感兴趣的朋友跟随小编一起看看吧
    2020-07-07
  • Spring boot事件监听实现过程解析

    Spring boot事件监听实现过程解析

    这篇文章主要介绍了,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • idea全局设置Maven配置的实现步骤

    idea全局设置Maven配置的实现步骤

    本文主要介绍了idea全局设置Maven配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 解决引入spring-cloud-starter-openfeign后部分类找不到的问题

    解决引入spring-cloud-starter-openfeign后部分类找不到的问题

    这篇文章主要介绍了解决引入spring-cloud-starter-openfeign后部分类找不到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 简述JAVA同步、异步、阻塞和非阻塞之间的区别

    简述JAVA同步、异步、阻塞和非阻塞之间的区别

    这篇文章主要介绍了JAVA同步、异步、阻塞和非阻塞之间的区别,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • 启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll 错误的解决方法

    启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll

    这篇文章主要介绍了有时候,新电脑上回碰到打开Eclipse时,弹出提示“Failed to load the JNI shared library jvm.dll”错误,这里给大家分享解决方案
    2016-08-08

最新评论