如果我有这个字符串:bb=c("\\dat\\Bjkjgf_Yloiut_dsezr_proj_111_999.txt","\\dat\\Bjkjgf_Yloezr_proj_111_999.txt")我需要提取\和_proj之间的任何内容我可以做到这一点,但只为其中一个工作,不为另一个工作:substr(bb, 1, 15)期望输出Bjkjgf_Yloiut_dsezr,Bjkjgf_Yloezr
bb=c("\\dat\\Bjkjgf_Yloiut_dsezr_proj_111_999.txt","\\dat\\Bjkjgf_Yloezr_proj_111_999.txt")
substr(bb, 1, 15)
4ktjp1zp1#
使用gsub
gsub
gsub(".*\\\\|_proj.*", "", bb) [1] "Bjkjgf_Yloiut_dsezr" "Bjkjgf_Yloezr"
8fq7wneg2#
regmatches:
regmatches
sapply(regmatches(bb, regexec("dat\\\\(.*)_proj", bb)), `[`, 2) #[1] "Bjkjgf_Yloiut_dsezr" "Bjkjgf_Yloezr"
或stringr::str_match:
stringr::str_match
stringr::str_match(bb, "dat\\\\(.*)_proj")[, 2]
2条答案
按热度按时间4ktjp1zp1#
使用
gsub
8fq7wneg2#
regmatches
:或
stringr::str_match
: