Java 正则表达式 group 方法使用注意事项

本文介绍了如何使用正则表达式进行模式匹配。在给定的目标串'10,20,30,40,50'和模式串'(\d+),(d+)'的例子中,首次匹配得到的大组是'10,20',包含两个小组:'10'和'20'。在每次调用`find()`后,`group()`将返回下一个匹配的大组。记住,在调用`group()`之前必须先调用`find()`,否则会抛出NoMatchFound异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有如下目标串和模式串

目标串:10,20,30,40,50
模式串:(\d+),(\d+)

当我们去匹配该目标串时,第一个匹配到的大组应该是10,20,然后是1020两个小组对吧?

  • 请务必在调用group之前调用find方法,相当于查找之后才会有组,否则会报错No match found
Matcher matcher = Pattern.compile("(\\d+),(\\d+)").matcher("10,20,30,40,50");
matcher.find();		// 这一行必须有,否则调用 group 报错
System.out.println(matcher.group());
  • group()默认返回的是第0组,该组不是第一个括号的捕获,而是整个匹配到的子串,例如在执行一次find()后matcher.group(0)和matcher.group()都返回10,20
    在这里插入图片描述
    在这里插入图片描述
    从第1组开始才是括号内捕获的内容
    在这里插入图片描述
    在这里插入图片描述

  • 每一次调用find都会匹配到下一个大组,例如调用2次find匹配到的group就是30,40
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值