Java正则表达式之group()

在java中使用正则表达式返回符合正则表达式的字符串就要用到group(),group中记录了所有符合指定表达式的字符串,下面我通过一段代码讲解如何使用group:

public static void main(String[] args)
{

Pattern p = Pattern.compile("(\\d+,)(\\d+)");
String s = "123,456-34,345";
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());
}

首先创建Pattern对象,在其中编译要用到的表达式,接着使用matcher方法在字符串中匹配指定表达式,接下来,就要输出查找结果了,在调用m.group之前,一定要记着调用m.find,不然会产生编译错误,在正则表达式中,用括号括起来的算作一组,group(0)于group()等价,表示整个正则表达式的匹配字符串,group(1)等价于第一个括号内的表达式返回的字符串,以此类推。当while循环执行过一轮,第二轮就输出第二组匹配的字符串。上述程序的执行结果如下:

m.group():123,456
m.group(1):123,
m.group(2):456

相关推荐