「Java」replaceAll関数で置換文字列にマッチしたグループ($0、$1)を使うサンプル

説明
public String replaceAll(String regex, String replacement)
指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。
Javaコード

package com.arkgame.study;

public class Seki10Demo {

      private static final String matchPt = "([A-Z]+)([0-9]+)";

      public static void main(String[] args) {
            String target = "##ABCD123456>?";

            String result0 = target.replaceAll(matchPt, "$0");
            System.out.println("([A-Z]+)([0-9]+)にマッチ結果:\n" + result0);
            System.out.println("=======================");
            String result1 = target.replaceAll(matchPt, "$1");
            System.out.println("([A-Z]+)にマッチ結果:\n" + result1);
            System.out.println("=======================");
            String result2 = target.replaceAll(matchPt, "$2");
            System.out.println("([0-9]+)にマッチ結果:\n" + result2);
            System.out.println("=======================");
            String result01 = target.replaceAll(matchPt, "$0,$1");
            System.out.println("$0,$1にマッチ結果:\n" + result01);
            System.out.println("=======================");
            String result012 = target.replaceAll(matchPt, "$0,$1,$2");
            System.out.println("$0,$1,$2にマッチ結果:\n" + result012);

      }

}

実行結果
([A-Z]+)([0-9]+)にマッチ結果:
##ABCD123456>?
=======================
([A-Z]+)にマッチ結果:
##ABCD>?
=======================
([0-9]+)にマッチ結果:
##123456>?
=======================
$0,$1にマッチ結果:
##ABCD123456,ABCD>?
=======================
$0,$1,$2にマッチ結果:
##ABCD123456,ABCD,123456>?

 

Java

Posted by arkgame