如何移除R语言字符向量中连续单个字母间的空格?
移除字符向量中单个字母间的空格
给定原字符向量:
vec1 <- c("D R JOHNSON", "NICE W E A T H E R")
想要得到目标向量:
vec2 <- c("DR JOHNSON", "NICE WEATHER")
可以使用R的gsub()函数结合正则表达式实现,核心是精准匹配单个字母之间的空格并将其移除:
vec2 <- gsub("(?<=\\b[A-Za-z]) (?=[A-Za-z]\\b)", "", vec1, perl = TRUE)
正则表达式说明
(?<=\\b[A-Za-z]):正向后顾断言,确认空格前是一个独立的单个字母(\b表示单词边界,确保该字母前后没有其他字母):匹配需要移除的空格(?=[A-Za-z]\\b):正向前瞻断言,确认空格后是一个独立的单个字母perl = TRUE:启用Perl风格的正则表达式,支持断言语法
运行上述代码后,即可得到目标结果:
> vec2 [1] "DR JOHNSON" "NICE WEATHER"
内容的提问来源于stack exchange,提问作者James Rider
相关产品推荐
相关产品推荐

