Javaで正規表現を使って置換
ほとんどAPIドキュメントのままだが…
置換文字列に戻り読み指定の$1とか、$2がそのまま使えるのはありがたいな。
//置換元文字列 String source = "Javaで正規表現" + "\nJavaなんかよりもPerlで正規表現" + "\nJavaなんかよりもRubyで正規表現"; //行頭の"Javaなんかよりも..."を"Javaなんか"で置換 String regexp = "(^Javaなんか)よりも(?:Perl|Ruby)"; //正規表現 String replacement = "$1"; //置換文字列:直前にマッチしたグループの1つ目の文字列 //行に対するマッチ処理を実行するため、Pettern.MULTILINEを設定 Pattern p = Pattern.compile(regexp, Pattern.MULTILINE); Matcher m = p.matcher(source); //置換結果を収集するためのバッファ StringBuffer sb = new StringBuffer(); while(m.find()) { //マッチ直前までの文字列と、置換文字を結合 m.appendReplacement(sb, replacement); } m.appendTail(sb);//以降の文字をすべて結合 System.out.println(sb.toString()); //結果 //Javaで正規表現 //Javaなんかで正規表現 //Javaなんかで正規表現