我正在处理一些原始文本,并希望将所有的多个空格替换为一个空格。通常,我会使用stringr的 str_squish
函数来实现,但不幸的是它也会删除换行符(\n和\r),而我需要保留。
有什么好的方法吗?以下是我的尝试。非常感谢!
library(tidyverse)
x <- "hello \n\r how are you \n\r all good?"
str_squish(x)
#> [1] "hello how are you all good?"
str_replace_all(x, "[:space:]+", " ")
#> [1] "hello how are you all good?"
str_replace_all(x, "\\s+", " ")
#> [1] "hello how are you all good?"
这段内容创建于2020年7月1日,使用了reprex包(v0.3.0)
[[:blank:]]
可以去掉空格和制表符。由于 OP 只想在存在两个或多个空格时进行替换,因此你也可以明确说明[[:blank:]]{2,}
,尽管显然会得到相同的结果。 - rpolicastro