import
java.util.
*
;
import
java.util.regex.Matcher;
import
java.util.regex.Pattern;
public
class
Fenzhu
{
public
static
void
main(String[] args)
{
Pattern p
=
Pattern.compile(
"
(/d{3,5})([a-z]{2})
"
);
String s
=
"
123aa-34345bb-234cc-00
"
;
Matcher m
=
p.matcher(s);
while
(m.find())
{
System.out.println(
"
m.group():
"
+
m.group());
//
打印所有
System.out.println(
"
m.group(1):
"
+
m.group(
1
));
//
打印数字的
System.out.println(
"
m.group(2):
"
+
m.group(
2
));
//
打印字母的
System.out.println();
}
System.out.println(
"
捕获个数:groupCount()=
"
+
m.groupCount());
}
}
输出结果为
附:帮助文档的说明
group
public String group (int group)
- 返回在以前匹配操作期间由给定组捕获的输入子序列。
对于匹配器 m 、输入序列 s 和组索引 g ,表达式 m. group( g ) 和 s. substring( m. start( g ), m. end( g )) 是等效的。
捕获组是从 1 开始从左到右的索引。组零表示整个模式,因此表达式 m.group(0) 等效于 m.group() 。
如果该匹配成功了,但指定组未能匹配输入序列的任何部分,则返回 null 。注意,某些组(例如,(a*) )匹配空字符串。当这些的组成功匹配输入中的空字符串时,此方法将返回空字符串。
- 指定者:
- 接口
MatchResult
中的group
- 接口
- 参数:
group
- 此匹配器模式中捕获组的索引。
返回:
- 在以前的匹配期间组所捕获的子序列(可能为空);如果组未能匹配输入的部分,则返回 null 。 抛出:
IllegalStateException
- 如果没有尝试任何匹配,或者以前的匹配操作失败。IndexOutOfBoundsException
- 如果在给定索引的模式中不存在捕获组。
groupCount
public int groupCount ()
- 返回此匹配器模式中的捕获组数。
根据惯例,零组表示整个模式。它不包括在此计数中。
任何小于等于此方法返回值的非负整数保证是此匹配器的有效组索引。
- 指定者:
- 接口
MatchResult
中的groupCount
- 接口
- 返回:
- 此匹配器模式中的捕获组数。