【发布时间】:2018-07-07 10:20:35
【问题描述】:
我正在开发一个用 Java 编码的 Spigot 插件,并希望审查玩家聊天消息。我试图使用 #replaceAll() 对其进行审查,但它审查的内容超出了它应该的程度
我的代码是(使用的示例词)
public static String filter(String message) {
return message.replaceAll("(?i)on", "**");
}
输出是 “打开它”->“打开它**”
但它也取代了 “我做过一次”->“我做过 **ce”
有没有更好的方法来做到这一点,将它替换为正确的星星,但如果它在单词中就不会得到它。
如果有可能在他们试图绕过时阻止它使用 “on”或“o.n”我尝试忽略空格,但如果他们输入两个实际单词,例如“to no”,其中包含“on”而没有空格,就会触发。
【问题讨论】:
-
这篇文章是一个很好的阅读主题:blog.codinghorror.com/…