我有如下字符串。 我想使用纵梁提取
cnn
和cnncod40
,但它只给我cnn
。如何同时提取 cnn
和 cnncod40
。
library(stringr)
strings <- c('strng_tst_1_cnn.txt', 'strng_tst_1_cnncod40.txt','strng_tst_2_cnn.txt', 'strng_tst_2_cnncod40.txt')
ind_val <- c('cnn','cnncod40')
str_extract(strings, paste(ind_val , collapse = "|"))
输出是
"cnn" "cnn" "cnn" "cnn"
但我想要'cnn','cnncod40','cnn','cnncod40'
无需额外包装即可使用
sub
> sub( ".*(cnn|cnncod40).*", "\\1", strings)
[1] "cnn" "cnncod40" "cnn" "cnncod40"
如果你以相反的方式放置图案,它就会起作用
str_extract_all(strings, "cnncod40|cnn")