はこれを試してみてください:
Pattern pattern = Pattern.compile("<h3>(.*)<\\/h3>");
Matcher matcher = pattern.matcher("<h3>Basic Information</h3> <div>");
matcher.find();
StringBuffer sb = new StringBuffer();
matcher.appendReplacement(sb,"$1");
String result = sb.toString();
あなたがそれを行うことができない理由はただappendTail
方法はreplaceFirst
方法の終了時に呼び出されるので、それはですreplaceFirstという。マッチャーは、指定しなかったグループをの空の番号に置き換えます。指定したグループはの値です。マッチしなかったビットは当然マッチしなかったので置き換えられませんすべて。
グループ0:クエリの場合
<H3>
グループ1:基本情報
グループ0:</H3 >
不一致:<div>
これは、マッチャーでできることの一般的な例です。もちろん、あなただけの特定のグループをしたい場合は...まあは、ちょうど使用:あなたが唯一*「基本情報」を得ることを期待したい理由
matcher.group(1)
私は表示されません*このコードの結果として。 'replaceAll'は本当にあなたが望むものですか?おそらく、マッチを取り替える代わりに抽出する必要があるかもしれません。 –