如何执行不区分大小写的模式搜索和保留大小写的替换?

这是场景。

String strText = "ABC abc Abc aBC abC aBc ABc AbC"; // Adding a HTML content to this String searchText = "abc"; String strFormatted = strText.replaceAll( "(?i)" + searchText, "" + searchText + ""); 

这将返回一个字符串,其中所有单词均为小写,当然为红色。 我的要求是使用与原始字符串相同的情况将strFormatted作为String,但它应该具有Font标记。

是否有可能做到这一点 ?

您可以使用反向引用。 就像是:

 String strFormatted = strText.replaceAll( "(?i)(" + searchText + ")", "$1"); 

我想建议使用ArrayList的替代方案

 String [] strText = {"ABC", "abc","Abc", "aBC", "abC", "aBc", "ABc", "AbC"}; ArrayList abc = new ArrayList (); for(int j=0;j<8;j++) { if("abc".equalsIgnoreCase(strText[j])) { abc.add(""+strText[j]+""); } } String strFormatted = abc.toString(); System.out.println(strFormatted);