如何使用R删除字符向量内的单词之间不需要的空格?

时间:2014-12-10 11:50:03

标签: regex r

我有一个像以下字符矢量:

"I t is tim e to g o"

我希望它是:

"It is time to go"

2 个答案:

答案 0 :(得分:2)

此正则表达式适用于您的情况:"\\s(?=\\S\\s\\S{2,}|\\S$)"

string <- "I t is tim e to g o"
gsub("\\s(?=\\S\\s\\S{2,}|\\S$)", "", string, perl=TRUE)

## [1] "It is time to go"

试试这个。empty string。 见演示。

https://regex101.com/r/nL5yL3/32

答案 1 :(得分:0)

使用rex可能会使这类任务变得更简单一些。虽然在这种情况下可能不是:)

string <- "I t is tim e to g o"

library(rex)
re_substitutes(string, rex(
    space %if_next_is%
      list(
        list(non_space, space, at_least(non_space, 2)) %or%
        list(non_space, end)
      )
    ), "", global = TRUE)

#> [1] "It is time to go"