在java中使用正則表達式返回符合正則表達式的字符串就要用到group(),group中記錄了所有符合指定表達式的字符串,下面我通過一段代碼講解如何使用group:
public static void main(String[] args)
{
Pattern p = Pattern.compile("(file://\\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
m.group():34,345
m.group(1):34,
m.group(2):345
捕獲個數:
groupCount()=2