我有一个数据框,其中包含文件名的文本列。我想返回不带路径或文件扩展名的文件名。通常,我的文件名已编号,但不必如此。例如:
df<-data.frame(data=c("a","b"),fileNames=c("C:/a/bb/ccc/NAME1.ext","C:/a/bb/ccc/d D2/name2.ext"))
我想返回相应的结果
df<-data.frame(data=c("a","b"),fileNames=c("NAME","name"))
但是我无法想出一个漂亮的正则表达式来使用gsub。例如,我可以用以下方法去掉扩展名(前提是文件名以数字结尾):
gsub('([0-9]).ext','',df[,"fileNames"])
虽然我一直在尝试各种模式(通过阅读正则表达式帮助文件和本站类似的解决方案),但我无法得到一个正则表达式来返回最后一个“/”和第一个“.”之间的文本。有什么想法或类似问题的转发将不胜感激!
我得到的最佳结果是:
gsub('*[[:graph:]_]/|*[[:graph:]_].ext','',df[,"fileNames"])
但是这种方法不能完全去除前导路径字符,并且依赖于特定的文件扩展名。
file_path_sans_ext
是一个基本的正则表达式,我怀疑basename
也是(但还没有检查验证)。 - A5C1D2H2I1M1N2O1R2T1