我试图将一个字符串中第一次出现的"[]"替换为另一个字符串:
aString.replaceFirst("[]", "blah");
但是我收到了以下错误信息: java.util.regex.PatternSyntaxException: Unclosed character class near index 1 []
显然,[和]是元字符,但当我尝试使用\进行转义时,Eclipse会报告其不是有效的转义序列。
我已经查找过了,但没有找到答案,我错过了什么吗?
谢谢
我试图将一个字符串中第一次出现的"[]"替换为另一个字符串:
aString.replaceFirst("[]", "blah");
但是我收到了以下错误信息: java.util.regex.PatternSyntaxException: Unclosed character class near index 1 []
显然,[和]是元字符,但当我尝试使用\进行转义时,Eclipse会报告其不是有效的转义序列。
我已经查找过了,但没有找到答案,我错过了什么吗?
谢谢
\
作为转义字符,但Java也是如此。因此,要在正则表达式模式中获得一个单一的转义符(\
),您应该编写:\\
。要在正则表达式中转义一个转义符,请将模式加倍:\\\\
。\\Q[]\\E
。java.util.regex.Pattern.quote()
在\\Q
和\\E
之间执行此包装。aString.replaceFirst("\\[\\]", "blah");
aString.replaceFirst(java.util.regex.Pattern.quote("[]"), "blah");