首页 > 解决方案 > RegEx 不会从字符串中删除字符

问题描述

我有一个由几个逗号组成的字符串,还有几个以“§”符号形式的颜色格式代码,然后是一个字符(例如“§a§6Text,here”应该变成“Text here”)。我想删除所有的逗号,还有所有的颜色格式。我使用了这段代码,但是当它运行时,它最终并没有删除格式,它变成了某种神秘的字符,会根据我打开的文本编辑器而改变它在(记事本/++中的“�”,Excel中的“�f�f�”)。

我正在运行 Java 11,并在 notepad++ 中检查了我的 RegEx,它似乎可以工作。截至目前,我的代码成功删除了逗号,但没有删除颜色格式。

for (String entry : lineEntries) {
                String entryx = entry.replace(",", "");
                entryx = entryx.replace("§.", "");
                refinedEntries.add(entryx);
            }

如果我要输入“§f§f§6Spicy,Special”,我希望它返回“SpicySpecial”

编辑:修复了一个仍然很重要的单独错误,但没有解决问题。

标签: javaregex

解决方案


该代码不起作用,因为在

               String entryx = entry.replace(",", "");

你正在从 entry 中删除每个逗号,它会在 entryx 中返回结果,并且在你应该使用第一个操作的结果之后,即 entryx 来删除每个特殊符号所以你的代码应该是这样的

for (String entry : lineEntries) {
            String entryx = entry.replace(",", "");
            entryx = entryx.replace("§", "");
            refinedEntries.add(entryx);
        }

推荐阅读