在Java中修剪字符串中的空格

Fra*_*ank 5 java regex string replace filter

我意识到这方面有很多问题,但我还没有找到适合我情况的解决方案.我知道string.trim()并没有任何效果.在网上研究并发现了一个讨厌string.trim()的世界后,我意识到我想要移除的空白字符必须超出范围.trim()才能满足.

我正在使用一些我还不完全理解的正则表达式来删除除了'='和','之外的任何特殊字符的字符串,如果紧跟在','之外的所有空格除外.

但是,我现在想要从字符串中完全删除所有空格.任何关于如何编辑我用来完成此任务的正则表达式的想法将不胜感激.同样,我想要的是'='和','以及要保留的数字和字母.应删除所有空格和其他特殊字符.

这是迄今为止的代码:

if (argsToBeFiltered != null) {
            // Remove all whitespace and chars apart from = and ,
            String filteredArgs = argsToBeFiltered.replaceAll(
                    "[^=,\\da-zA-Z\\s]|(?<!,)\\s", "");
            return filteredArgs;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

是时候学习正则表达了!

请参阅Pattern和各种正则表达式教程,例如Lesson:Regular Expressions.

[^=,\\da-zA-Z\\s]
Run Code Online (Sandbox Code Playgroud)

该部分表示匹配NOT(^)字符:=,, ,数字(\ d),AZ(AZ)或空格(\ s).但是,您可能希望它现在匹配空格(因为没有第二个逗号后部分来匹配它们).所以:

argsToBeFiltered.replaceAll("[^=,\\da-zA-Z]", "");
Run Code Online (Sandbox Code Playgroud)

  • 那不太对劲.`\\ s`(或字符串转义后的`\ s`)不仅仅是空格,还包括垂直和水平制表符,回车符/换行符等... (3认同)