Java replaceall忽略大小写和特殊字符

时间:2012-02-25 11:42:00

标签: java regex character

这只是我尝试完成的事情的示例代码。

String s = "hello(1234aA)something";
String replaceString = "(1234aa)";
String s2 = s.replaceAll("(i?)" + replaceString, "something");

字符串s将是相同的,但可能会有所不同,这就是为什么我在replaceall中使用(i?)。 我怎样才能使正则表达式忽略特殊的

1 个答案:

答案 0 :(得分:3)

使用quote(),似乎你已经找出了忽略的情况,但你应该使用(?i),而不是(i?)。

String s = "hello(1234aA)something";
String replaceString = "(?i)" + Pattern.quote("(1234aa)");
String s2 = s.replaceAll(replaceString, "something");

这应该有用。