首页 > 解决方案 > 如何替换所有非字母字符并保留空格?

问题描述

我正在尝试替换字符串中不是字母的所有字符,但保留单词之间的空格。

我到目前为止的代码:

String newWords = words.replaceAll("[^A-Za-z0-9 ]", "");

我也试过这个:

[^a-zA-Z0-9\\s]

代码的问题在于它删除了字符串中除数字之外的所有内容。

标签: java

解决方案


它会删除 87.97 之间的点,但不会删除数字本身

[^...]表示除 之外的所有字符。所以[^A-Za-z0-9 ]意味着:匹配(并替换/删除) A-Z a-z 0-9 and之外的所有内容space。换句话说,这些字符受到保护,不会被删除。

如果您还想删除数字(数字系列)0-9,请从您的正则表达式中删除。

String newWords = words.replaceAll("[^A-Za-z ]", "");

推荐阅读