是否可以将字符串向量解析为正则表达式中的替换元素?例如:
pattern <- "^This\\s(*alternation element*)\\srocks\\."
Animals <- c("cow","dog","cat")
因此,如果我将“Animals”解析为正则表达式,它将导致:
pattern <- "^This\\s(*cow|dog|cat*)\\srocks\\."
它基本上应该像or1()
从rebus
包中一样工作。
是否可以将字符串向量解析为正则表达式中的替换元素?例如:
pattern <- "^This\\s(*alternation element*)\\srocks\\."
Animals <- c("cow","dog","cat")
因此,如果我将“Animals”解析为正则表达式,它将导致:
pattern <- "^This\\s(*cow|dog|cat*)\\srocks\\."
它基本上应该像or1()
从rebus
包中一样工作。
你可以paste0
用来生成你的正则表达式:
paste0('^This\\s(', paste0(Animals, collapse = "|"), ')\\ssrocks\\.')
#[1] "^This\\s(cow|dog|cat)\\ssrocks\\."
请注意,在 R 中,您需要使用双反斜杠 ( \\
)。
我们可以用sprintf
sprintf("^Thi\\s(%s)\\ssrocks\\.", paste(Animals, collapse="|"))
#[1] "^Thi\\s(cow|dog|cat)\\ssrocks\\."