1. 程式人生 > >csdn—正則表示式當中的捕獲組

csdn—正則表示式當中的捕獲組

捕獲組

捕獲組是把多個字元當成一個單獨的單元進行處理的方法。

這個方法是通過對括號裡面的字元進行分組來進行建立的。

打個比方來說,正則表示式(dog)建立了單一分組,組裡面是包含了”d”,”o”,”g”這三個東西的。

那麼捕獲組是什麼意思呢,就是通過從左到右計算它的開括號來編號的。

這一點是比較難以理解的。

我們再舉個例子,在表示式((A)(B(C)))當中,這裡面是有四個下面的組的。

((A)(B(C)))
(A)
(B(C))
(C)

可以通過呼叫matcher物件的groupCount方法來查看錶達式當中到底是有多少個分組的。

groupCount方法會返回一個int的值,就表示個數的。

表示的就是matcher物件當前有多個小組的。

另外,還有一個特殊的組(group(0)),這個意思是什麼呢,它總是代表整個表示式的。

這個組不包括在groupCount的返回值當中的。

為了理解這個小知識點。

我們舉個實際的例子

下面的例子說明如何從一個給定的字串當中,找到數字串。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class regex3 {
    public static void main( String args[] ){

          // 按指定模式在字串查詢
String line = "This order was placed for QT3000! OK?"; String pattern = "(\\D*)(\\d+)(.*)"; // 建立 Pattern 物件 Pattern r = Pattern.compile(pattern); // 現在建立 matcher 物件 Matcher m = r.matcher(line); if (m.find( )) { System.out
.println(m.groupCount()); for (int i = 0; i <= m.groupCount(); i++) { System.out.println("找到了:"+m.group(i)); } } else { System.out.println("什麼都沒有找到"); } } }