2017-09-16 12 views
2

データベースを検索するアプリケーションを作成しています - 検索結果を太字で表示したい私は、文字列があるとします。Java:部分文字列を<b>部分文字列で置換する</b>大文字と小文字を区別しない

String s = "Foo Bar foobAr"; 
String searchTerm = "bar"; 

今、私は関係なく、例(それは太字にする)と私の文字列sにSEARCHTERMのすべてののoccuranceを囲むようにしたいです。

"Foo <b>Bar</b> foo<b>bAr</b>" 

This is relevantが、それは検索語と同じ出力を作る - 私は、元の文字列の筐体を保持したい:出力はする必要があります。

答えて

2

逆参照を使用して、必要な文字列を置き換えることができます。バックリファレンスの詳細については、this questionを参照してください。

口座にそれを取ると、これはトリックを行う必要があります。

s.replaceAll("(?i)(" + searchTerm + ")", "<b>$1</b>") 
+0

Yeapはちょうど 's.replaceAll ...' 'ないsearchTerm.replaceAll' – pleft

+0

@pleftおっと、感謝に変更、それのthats。 – Kraylog

関連する問題