为什么我不能替换":)"

FFl*_*ser 1 java regex string

我似乎无法将":)"的字符串替换为其他内容,这是我的代码:

if(message.contains(":)")) message = message.replaceAll(":)", replacement);
Run Code Online (Sandbox Code Playgroud)

这是错误:

Exception in thread "Listen" java.util.regex.PatternSyntaxException: Unmatched closing ')'
near index 0
:)
^
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

ars*_*jii 8

不要用replaceAll(); 使用replace()时要替换文本字符串:

message.replace(":)", replacement)
Run Code Online (Sandbox Code Playgroud)

replaceAll()处理正则表达式,其中)有特殊含义,因此错误.