使用gsub删除两个单个字符之间的空格

时间:2017-12-22 22:01:21

标签: r regex text whitespace

我有一组地址,其状态缩写如下:

a <- c("2 reads way wilmington d e", "30 rockefeller plaza new york n y", "400 university drive durham n c")

我想删除两个字符之间的额外空格,以便最终结果是:

a <- c("2 reads way wilmington de", "30 rockefeller plaza new york ny", "400 university drive durham nc")

我想使用正则表达式来删除两个字母缩写之间的空格,我被告知gsub是最好的,所以我尝试了:

a <- gsub("^. .$", "..") 

但我不断取代文字字符串"..",比如我想要的"ny"。使用正则表达式执行此操作的最佳方法是什么?我想grep也能奏效?欢迎使用多种方法。

3 个答案:

答案 0 :(得分:2)

您需要使用:

gsub("[[:space:]]","",a)

答案 1 :(得分:2)

sub("(?=.{2}$).","",a,perl = T)
[1] "2 reads way wilmington de"        "30 rockefeller plaza new york ny"
[3] "400 university drive durham nc"  

答案 2 :(得分:1)

你可以试试这个:

foo <- c("2 reads way wilmington d e", 
         "30 rockefeller plaza new york n y", 
         "400 university drive durham n c")
gsub("(?<=\\b\\w)\\s(?=\\w\\b)", "", foo, perl = TRUE)
# [1] "2 reads way wilmington de"        "30 rockefeller plaza new york ny"
# [3] "400 university drive durham nc"