在 Java Regex 中捕獲組和反向引用


捕獲組是一種將多個字元視為一個整體的方式。透過將要分組的字元放在一對括號內來建立它們。例如,正則表示式 (dog) 建立了一個包含字母“d”、“o”和“g”的單組。

捕獲組的編號是根據它們從左到右的左括號記數。

例如,在表示式 ((A)(B(C))) 中,有四個這樣的組 -

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

反向引用允許透過使用像 \# 這樣的數字重複捕獲組,其中 # 是組號。

請看下面的示例 −

示例

即時演示

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Tester {
   public static void main(String[] args) {
      //2 followed by 2 five times
      String test = "222222";
      String pattern = "(\d\d\d\d\d)";
      Pattern r = Pattern.compile(pattern);
      Matcher m = r.matcher(test);
      if (m.find( )) {
         System.out.println("Matched!");
      }else {
         System.out.println("not matched!");
      }
      //\1 as back reference to capturing group (\d)
      pattern = "(\d)\1{5}";
      r = Pattern.compile(pattern);
      m = r.matcher(test);
      if (m.find( )) {
         System.out.println("Matched!");
      }else {
         System.out.println("not matched!");
      }
   }
}

輸出

Matched!
Matched!

更新日期:25-2-2020

879 次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.