如何从字符串中删除除一组字符以外的所有字符?
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 方法。
我想从字符串中删除除“+”、“-”和“.”之外的所有字符。这些值可以存储在数组中或硬编码到程序中。有没有办法用特定的函数或正则表达式来做到这一点?
是的,正则表达式具有 取反字符 类.
的语法不,我不会为您提供完整的解决方案。在正则表达式手册中查找。它是如此基本,我不明白为什么你需要问,当它在每个文档中都是正确的。问题在哪里?
您可以使用带有字符串替换的正则表达式。
/[^\+|\-|\.]/g
这有点矫枉过正。相反,我会只对字符串进行 foreach 并通过仅添加所需的字符来构建一个新字符串。类似于:
String text = retrieveTextToProcess();
StringBuilder sb = new StringBuilder();
for (char ch: text.toCharArray()) {
if(isDesiredCharacter(ch)) {
sb.Append(ch);
}
}
您将需要编写 retrieveTextToProcess 和 isDesiredCharacter 方法。