R-从第n个位置到第一个点的子集字符串

时间:2019-05-28 10:10:00

标签: r string subset

我有一个这样的文件名列表:

数据列表

EU_AU_abc100.dat
EU_AU_abc200.dat
EU_AU_abc300.dat
EU_AU_abc.dat

我想要这个:

abc100
abc200
abc300
abc

我该怎么做?例如,我知道substr(datalist, start = 6, stop = 12),但这不适用于最后一个示例。任何想法如何解决这个问题?我可以以某种方式将.dat用作停止标记吗?

1 个答案:

答案 0 :(得分:2)

使用gsub

gsub('.*_([^_]+)\\.dat','\\1',c("datalist EU_AU_abc100.dat","EU_AU_abc.dat"))
[1] "abc100" "abc" 

.*_任何字符后跟_
([^_]+)捕获_.*_之间的.dat以外的任何字符作为组1。然后返回该组\\1