2017-07-19 43 views
2

如何在R中一起使用变量值和正则表达式位置表达式?例如,在下面的代码中,我将如何替换仅出现在字符串开头或结尾的“zzz”的情况?这适用于“zzz”的所有值在R中使用正则表达式中的变量值

target_nos <- c("1","2","zzz","4") 
sample_text <- cbind("1 dog 1","3 cats zzz","zzz foo 1") 
for (i in 1:length(target_nos)) 
{ 
sample_text <- gsub(pattern = target_nos[i],replacement = "REPLACED", x = 
sample_text) 
} 

但是,如何包含^和$位置标记?这将引发错误

sample_text <- gsub(pattern = ^target_nos[1],replacement = "REPLACED", x = 
sample_text) 

这将运行,但是从字面上解释变量,而不是调用值

sample_text <- gsub(pattern = "^target_nos[1]", replacement = "REPLACED", x = 
sample_text) 

回答

2

您需要^$字符是正则表达式字符串中。换句话说,target_nos可能是这样的:

"^1" "^2" "^zzz" "^4" "1$" "2$" "zzz$" "4$" 

要实现这样的编程方式从你有什么,你可以这样做:

target_nos <- c("1","2","zzz","4") 
target_nos <- c(paste0('^', target_nos), paste0(target_nos, '$')) 
相关问题