整句话去除额外的空格

4

我有以下变量:

sen <- "I have a    sentence  "

我想将上述句子中的所有空格(包括开头、结尾和中间的空格)都去掉,我知道怎样使用 str_trim(sen)函数,但是它只能去除开头和结尾的空格。我也想去掉中间的空格。

期望输出结果为:"我有一个句子"


1
gsub(" ","","I have a sentence ") - user2974951
谢谢,这很有帮助,但是它只会移除额外的空格而不是所有的空格吗? - user12053518
2
不,这会删除所有空格,因为在你的问题中你说“所有的空格”。 - user2974951
对不起,我的意思是删除所有额外的空格,抱歉造成困扰。 - user12053518
1
同意,你在问题中的写作方式很令人困惑。 - user12059497
2个回答

4

你很幸运,因为在stringr包中有完全相同的函数str_squish()。

这应该能够实现你想要达到的效果。

library(stringr)
sen <- "I have a    sentence  "
str_squish(sen)
print(sen)

输出:"我有一个句子"


3
我们可以使用gsub来将多个空格替换为一个空格。我们将其包装在trimws中以删除字符串开头和结尾处的空格。
trimws(gsub("\\s+", " ", sen))
#[1] "I have a sentence"

谢谢,我在正则表达式方面不是很强,有什么有用的指南吗? - user12053518
1
@Artika https://www.regular-expressions.info/ 看起来是一个不错的资源。 - Ronak Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接