2

是否可以将字符串向量解析为正则表达式中的替换元素?例如:

pattern <- "^This\\s(*alternation element*)\\srocks\\."
Animals <- c("cow","dog","cat")

因此,如果我将“Animals”解析为正则表达式,它将导致:

pattern <- "^This\\s(*cow|dog|cat*)\\srocks\\."

它基本上应该像or1()rebus包中一样工作。

4

2 回答 2

2

你可以paste0用来生成你的正则表达式:

paste0('^This\\s(', paste0(Animals, collapse = "|"), ')\\ssrocks\\.')
#[1] "^This\\s(cow|dog|cat)\\ssrocks\\."

请注意,在 R 中,您需要使用双反斜杠 ( \\)。

于 2020-04-01T05:22:34.353 回答
0

我们可以用sprintf

sprintf("^Thi\\s(%s)\\ssrocks\\.", paste(Animals, collapse="|"))
#[1] "^Thi\\s(cow|dog|cat)\\ssrocks\\."
于 2020-04-01T19:32:23.270 回答