在Java中替换String忽略大小写

时间:2015-06-26 06:16:43

标签: java regex string replace

String Checkout = D:\ifs\APP\Checkout
String DeleteLine = D:\IFS\APP\Checkout\trvexp\client\Ifs.App\text.txt

请注意两个字符串中的 ifs IFS 。 我想替换已删除行

中的结帐字符串

所以最终的String看起来像这样:

\trvexp\client\Ifs.App\text.txt

以下是我尝试过的,但显然由于Case Sensitivity,字符串不会被替换。任何解决方案或解决此问题?

String final = DeleteLine.replace(Checkout, "");

4 个答案:

答案 0 :(得分:6)

String.replace()不支持正则表达式。您需要String.replaceAll()

DeleteLine.replaceAll("(?i)" + Pattern.quote(Checkout), "");

答案 1 :(得分:2)

(?i)放入replaceAll方法的正则表达式中:

String finalString = DeleteLine.replaceAll("(?i)" + Checkout, "");

答案 2 :(得分:2)

你可以这样做:

String Checkout = "D:\\\\ifs\\\\APP\\\\Checkout";
String DeleteLine = "D:\\IFS\\APP\\Checkout\\trvexp\\client\\Ifs.App\\text.txt";
String f = DeleteLine.replaceFirst("(?i)"+Checkout, "");

答案 3 :(得分:2)

或者,如果您想要特定部分的模式,您可以手动执行。您可以将结帐Sting声明为:

multi_fields2

as

  

\ Q表示"文字文本的开头"
  \ E表示"文字结尾"

然后执行替换

String Checkout= \Q(?i)D:\ifs\APP\Checkout\E