如何从字符串中删除除一组字符以外的所有字符?

How to remove all but a set of characters from a string?

我想从字符串中删除除“+”、“-”和“.”之外的所有字符。这些值可以存储在数组中或硬编码到程序中。有没有办法用特定的函数或正则表达式来做到这一点?

是的,正则表达式具有 取反字符 类.

的语法

不,我不会为您提供完整的解决方案。在正则表达式手册中查找。它是如此基本,我不明白为什么你需要问,当它在每个文档中都是正确的。问题在哪里?

您可以使用带有字符串替换的正则表达式。

/[^\+|\-|\.]/g

这有点矫枉过正。相反,我会只对字符串进行 foreach 并通过仅添加所需的字符来构建一个新字符串。类似于:

String text = retrieveTextToProcess();
StringBuilder sb = new StringBuilder();

for (char ch: text.toCharArray()) {
    if(isDesiredCharacter(ch)) {
       sb.Append(ch);
    }
}

您将需要编写 retrieveTextToProcess 和 isDesiredCharacter 方法。