这样就可以:
String p="abAabcAbdaBnabbac".replaceAll("(A|a)(B|b)", "-");//被替换的字符串
System.out.println(p);输出:-A-c-d-n-bac

解决方案 »

  1.   

    謝謝Danger2000(飞鱼) 我的pmr都是用戶給定的(自己寫的一個替換函數),是這种情況怎麼處理呢
      

  2.   

    那就用toLowerCase()和toUpperCase()来处理m来形成正则表达式。
    比如(其中m为用户给的匹配的字符串):char[] cLowCaseArr = m.toLowerCase().toCharArray();  //假设m="ab"
    char[] cUppCaseArr = m.toUpperCase().toCharArray();
    StringBuffer regex136 = new StringBuffer();
    for(int i=0;i<cLowCaseArr.length;i++) {
      regex136.append("(" + String.valueOf(cLowCaseArr[i]) + "|" + String.valueOf(cUppCaseArr[i]) + ")" );
    }
    System.out.println(new String(regex136));输出:(a|A)(b|B)