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!

更新日期:2020 年 2 月 25 日

872 次觀看

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.