我在替换模式时遇到了一些奇怪的问题。
我有这两种模式:
private static final Pattern CODE_ANY = Pattern.compile("&[0-9a-fk-or]");
private static final Pattern CODE_BLACK = Pattern.compile(ChatColour.BLACK.toString());
ChatColour.BLACK.toString() 返回“&0”
接下来,我有这个代码:
public static String Strip(String message)
{
while (true)
{
Matcher matcher = CODE_ANY.matcher(message);
if (!matcher.matches())
break;
message = matcher.replaceAll("");
}
return message;
}
我尝试了几种不同的方法,但没有任何东西被替换。最初的版本只是一个接一个地调用每个 CODE_xxx 模式,但用户通过加倍使用 & 符号来绕过它。
我只是不明白为什么这没有删除任何东西。我知道它肯定会被调用,因为我已将调试消息打印到控制台以进行检查。
// 莫顿