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);
        }
    }

核心代码其实不多。

  1. 获取字符串str

  2. 声明一个Pattern对象,调用其compile静态方法,获取一个正常的统配符对象r。

  3. 通过rmatcher()方法,给它我们的字符串str,即r.matcher(str),获得一个matcher对象m

  4. 最后,就可以通过matcher对象取出我们想要的数据,取出组的话,要使用m的方法group(),0是取出所有匹配字符串,即不会按照组这个说法来匹配,之后就可以依次取出我们用括号括起来的内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值