在 R 的正则表达式中使用变量值
Using variable value in regex in R
如何在 R 中同时使用变量值和正则表达式位置表达式?例如,在下面的代码中,我如何只替换出现在字符串开头或结尾的 "zzz" 的情况?这适用于 "zzz"
的所有值
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)
您需要 ^
和 $
字符位于正则表达式模式字符串中。换句话说,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, '$'))
如何在 R 中同时使用变量值和正则表达式位置表达式?例如,在下面的代码中,我如何只替换出现在字符串开头或结尾的 "zzz" 的情况?这适用于 "zzz"
的所有值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)
您需要 ^
和 $
字符位于正则表达式模式字符串中。换句话说,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, '$'))