我有一个这样的文件名列表:
数据列表
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用作停止标记吗?
答案 0 :(得分:2)
使用gsub
gsub('.*_([^_]+)\\.dat','\\1',c("datalist EU_AU_abc100.dat","EU_AU_abc.dat"))
[1] "abc100" "abc"
.*_
任何字符后跟_
([^_]+)
捕获_
和.*_
之间的.dat
以外的任何字符作为组1。然后返回该组\\1