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, "");
答案 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