问题描述
我正在寻找一种使用包含数字和加号“ +”的白名单来替换字符串中所有其他字符的方法。
string <- "opiqr8929348t89hr289r01++r42+3525"
我首先尝试使用:
gsub("[[:punct:][:alpha:]]","",string)
但这也排除了“ +”:
# [1] "89293488928901423525"
如何从"+"
中排除[:alpha:]
?
所以我的目的是改用白名单:
whitelist <- c("0123456879+")
是否可以以其他方式使用gsub()
?因为当我使用白名单时,它将识别应该保留的字符。
解决方法
那呢:
string <- "opiqr8929348t89hr289r01++r42+3525"
gsub("[^0-9+]","",string)
# [1] "89293488928901++42+3525"
这会将所有非0-9或加号以外的内容替换为“”。