我有一个像以下字符矢量:
"I t is tim e to g o"
我希望它是:
"It is time to go"
答案 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
。
见演示。
答案 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"