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

时间:2012-01-06 03:52:04

标签: java regex string replaceall

以下是该方案。

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, 
    "<font color='red'>" + searchText + "</font>");

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

是否可以这样做?

2 个答案:

答案 0 :(得分:6)

您可以使用反向引用。类似的东西:

String strFormatted = strText.replaceAll(
    "(?i)(" + searchText + ")", 
    "<font color='red'>$1</font>");

答案 1 :(得分:0)

我想使用ArrayList

建议替代方案
String [] strText = {"ABC", "abc","Abc", "aBC", "abC", "aBc", "ABc", "AbC"};

    ArrayList<String> abc = new ArrayList<String> ();
       for(int j=0;j<8;j++)
        {

           if("abc".equalsIgnoreCase(strText[j]))
                  {
                      abc.add("<font color='red'>"+strText[j]+"</font>");
                  }
        }

   String strFormatted = abc.toString();
   System.out.println(strFormatted);