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

标签 java regex string

<分区>

我似乎无法将一串“:)”替换为其他内容,这是我的代码:

if(message.contains(":)")) message = message.replaceAll(":)", replacement);

这是错误:

Exception in thread "Listen" java.util.regex.PatternSyntaxException: Unmatched closing ')'
near index 0
:)
^

我该怎么办?

最佳答案

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

message.replace(":)", replacement)

replaceAll() 处理 regular expressions ,其中 ) 具有特殊含义,因此会出现错误。

关于java - 为什么我不能替换 ":)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076074/

相关文章:

regex - 可以单独提取组的每个出现,但不能作为重复组

java - 检查字符串是否包含存储在字符串数组中的多个值

c# - 如何使用里面有引号的字符串?

javascript - 使用 .split() 和 .filter() 方法从数组字符串中删除单词

java - Eclipse修改新建类对话框中的默认Main方法

java - Intellij 远程调试经常断开连接

java - LinkedList 为什么我们必须在这里创建虚拟对象?

java - 外部化 docker 的 spring 数据源属性

java - Java Android 中的正则表达式

c - 当一个字符串大于另一个时,为什么代码显示字符串相同