1

括弧のキャプチャが正規表現でどのように機能するかを理解しようとしていますが、わかりません...

私のコードは:

   Pattern pattern = Pattern.compile("ab");
   Matcher m = pattern.matcher("abc");

  while (m.find()) { 
      for (int i = 0; i < m.groupCount(); i++) {
          System.out.println(m.group(i));
      }
  }

だから私はまったく表示されませんでした。私が理解したのは、一致する結果を記憶して表示するには、括弧をキャプチャする必要があるということでした。

だから私はした:

   Pattern pattern = Pattern.compile("(ab)");
   Matcher m = pattern.matcher("abc");

そして、期待どおりの表示がありました:ab

次に、一致する結果の一部だけを覚えて表示したかったので、次のようにしました。

   Pattern pattern = Pattern.compile("(a)b");
   Matcher m = pattern.matcher("abc");

私は持っていると思っていました:a、しかし私は持っていました:ab

なぜ ?

4

1 に答える 1