问题描述
ts = ("az_bna_njh","j_hj_lkiuy","ml_","_kk")
我需要提取bna,hj,ml和kk
解决方法
我们可以使用
sub("^\\w+_(\\w+)_.*","\\1",trimws(ts,whitespace = "_"))
#[1] "bna" "hj" "ml" "kk"
或者另一个选择是
sub("^\\w+_(\\w+)_.*",gsub("^_|_$","",ts))
,
您也可以尝试:
#Data
ts = c("az_bna_njh","j_hj_lkiuy","ml_","_kk")
#Code
gsub(".*_(.*)\\_.*",whitespace = '_'))
输出:
[1] "bna" "hj" "ml" "kk"
,
另一种尝试的方式
library(stringr)
str_replace_all(ts,c("^.*_(\\w+)_.*$" = "\\1","^_|_$" = ""))
#[1] "bna" "hj" "ml" "kk"