如何交替使用向量列表(正则表达式)
How to use a list of vectors in alternation (regular expressions)
是否可以将字符串向量解析为正则表达式中的交替元素?例如:
pattern <- "^This\s(*alternation element*)\srocks\."
Animals <- c("cow","dog","cat")
所以如果我将 "Animals" 解析为正则表达式,它将导致:
pattern <- "^This\s(*cow|dog|cat*)\srocks\."
它基本上应该像 rebus
包中的 or1()
一样工作。
您可以使用 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\."
是否可以将字符串向量解析为正则表达式中的交替元素?例如:
pattern <- "^This\s(*alternation element*)\srocks\."
Animals <- c("cow","dog","cat")
所以如果我将 "Animals" 解析为正则表达式,它将导致:
pattern <- "^This\s(*cow|dog|cat*)\srocks\."
它基本上应该像 rebus
包中的 or1()
一样工作。
您可以使用 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\."