「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>?