Java - 在Regex中转义元字符[和]

Zir*_*ode 3 java regex escaping

我试图在另一个字符串中替换第一次出现的字符串"[]":

aString.replaceFirst("[]","blah");

我收到错误:java.util.regex.PatternSyntaxException:索引1 []附近的未闭合字符类

[和]显然是元字符,但是当我试图用\ eclipse来逃避它们时,抱怨它不是一个有效的转义序列.

我看了但找不到,我错过了什么?

谢谢

use*_*396 5

正则表达式模式\用作转义字符,但Java也是如此.因此,要在正则表达式模式中获得单个 escape(\),您应该写:\\.为逃避正则表达式中的逃逸,将模式加倍:\\\\.

当然,这是非常乏味的,因为正则表达式有很多类似的逃避序列.这就是为什么Java正则表达式还支持"引用"模式的"部分"部分,这允许您将模式编写为:\\Q[]\\E.

编辑:正如另一个答案暗示:java.util.regex.Pattern.quote()\\Q和之间执行此包装\\E.