删除除“ ”之外的所有空格字符

2022-09-03 16:53:27

我认为自己对正则表达式非常擅长,但这个似乎出奇地棘手:我想修剪所有空格,除了空格字符:。' '

在Java中,我尝试过的正则表达式是:,但这个也剥离了 。[\s-[ ]]' '

更新:

以下是我试图从中去除空格的特定字符串:

project team                manage key

注意:它将是“团队”和“管理”之间的字符。编辑此帖子时,它们显示为长空间,但在视图模式下显示为单个空间。


答案 1

尝试使用以下正则表达式:

[^\S ]+

由于双重否定,阅读起来有点令人困惑。正则表达式与您要保留的字符匹配,即空格或任何不是空格的内容。因此,否定字符类必须与要删除的所有字符匹配。[\S ][^\S ]


答案 2

使用番石榴炭浆:

String text = ...
String stripped = CharMatcher.WHITESPACE.and(CharMatcher.isNot(' '))
    .removeFrom(text);

如果你真的只是想从字符串的开头和结尾修剪它(比如),你会用而不是。String.trim()trimFromremoveFrom