如何提取R字符串中完整匹配的单词

问题描述 投票:0回答:1

我有如下字符串。 我想使用纵梁提取

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'

r string tidyverse
1个回答
0
投票

无需额外包装即可使用

sub

> sub( ".*(cnn|cnncod40).*", "\\1", strings)
[1] "cnn"      "cnncod40" "cnn"      "cnncod40"

如果你以相反的方式放置图案,它就会起作用

str_extract_all(strings, "cnncod40|cnn")
© www.soinside.com 2019 - 2024. All rights reserved.