2011-10-23 11 views
1

Matcher.replaceAll()(すなわちMatcher.replaceAll("$2"))。複数後方参照()

しかし、私は2つ以上の後方参照で動作させることができませんでした。 Matcher.replaceAll("$1$2")

Matcher.replaceAll()は複数のバックリファレンスをまったくサポートしていますか?もしそうなら、それを使う正しい構文は何ですか?

+2

Matcher.replaceAll( "$ 1 $ 2")が動作するはずです。あなたは何か間違ったことをしています –

+1

http://download.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#replaceAll(java.lang.String)ここには何も変わりません。おそらく、あなたの2番目の逆参照は空ですか? – FailedDev

答えて

3

うまく動作します。次のスニペット:

Pattern p = Pattern.compile("(.)(.)"); 
Matcher m = p.matcher("ab"); 
System.out.println(m.replaceAll("$2$1")); 

が印刷されます:

ba 
+0

すべて正しいです。私が使った構文は正しいものでしたが、 'Matcher.replaceAll(" $ 1 $ 2 ")'の戻り値を出力文字列に代入できませんでした。すべてが今はうまいです。ありがとう! – uTubeFan

関連する問題