java正则表达式之group()

xiaoxiao2026-08-19  30

转自:http://blog.csdn.net/coostone123/archive/2008/09/22/2959111.aspx

在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,456m.group(1):123,m.group(2):456

m.group():34,345m.group(1):34,m.group(2):345

捕获个数:groupCount()=2

转载请注明原文地址: https://www.6miu.com/read-5051458.html

最新回复(0)