我有很多文件名,如下所示:
txt= "MA0051_IRF2.xml"
我想提取“_”和“。”之间的IRF2
。我怎么在R?
答案 0 :(得分:11)
要实现这一目标,您需要一个正则表达式
.*
[_]
([^.]+)
[.]
.*
在你打电话给gsub时,你就
了\\1
(我们需要转义反斜杠,因此需要双反斜杠)示例:强>
gsub(".*[_]([^.]+)[.].*", "\\1", "MA0051_IRF2.xml")
答案 1 :(得分:2)
gsub(".*_(.*)\\..*", "\\1", txt)
##"IRF2"
答案 2 :(得分:1)
使用stringr包的另一种可能性:
str_extract(x, perl("(?<=_)(.+)(?=\\.)"))
答案 3 :(得分:1)
这是一个不需要正则表达式知识的可能解决方案:
txt <- "MA0051_IRF2.xml"
library(qdap)
genXtract(txt, "_", ".")
## _ : .
## "IRF2"