Java 入門

ホーム > Java の正規表現 (Regular Expression) > マッチした箇所の置換

マッチした箇所の置換

前回の 「正規表現によるスプリット」に引き続き、知らないと面倒くさい、 知っていると簡単にできることの例として、正規表現による文字列の置換を紹介します。

正規表現による文字列の置換

特定の文字列からマッチする箇所を探して、その場所を置換するという操作をしてみましょう。

次のコードをみてください。

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegExpTest3 {
	
	public static void main(String[] args) {
		String s = "SN123 xyz SN456";
		String patternString = "\\d+";
		
		Pattern p = Pattern.compile(patternString);
		Matcher m = p.matcher(s);
		System.out.println(m.replaceAll("#"));
		System.out.println(m.replaceFirst("#"));
	}

}

実行結果は次の通り。

SN# xyz SN#
SN# xyz SN456

元の文字列は "SN123 xyz SN456" で、パターン文字列は \d+ (ひとつ以上の数字) です。

従って、"SN123 xyz SN456" の "SN123 xyz SN456" の部分にマッチします。

replaceAll() メソッドではマッチする箇所全てを置換。replaceFirst() メソッドではマッチする最初の箇所だけを置換します。

従って、上の実行結果のようになります。

ホーム > Java の正規表現 (Regular Expression) > マッチした箇所の置換