您的位置:首页 > 编程语言 > Java开发

java正则表达式:group()详解

2009-07-30 18:52 525 查看


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


返回:

此匹配器模式中的捕获组数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: