在R中,
我有以下字符串:C:\\Users\\jam\\Downloads\\tomato\\roja.exe
和以下正则表达式:^(.*\\\\)([^\\\\]*)$
从此我想要文件夹路径:C:\\Users\\jam\\Downloads\\tomato\\
如果我像grep一样:
grep("^(.*\\\\)([^\\\\]*)$", "C:\\Users\\jam\\Downloads\\tomato\\roja.exe",value=TRUE)
结果是C:\\Users\\jam\\Downloads\\tomato\\roja.exe
,这不是预期的结果。
关于改进正则表达式的任何想法?
答案 0 :(得分:3)
无需使用正则表达式,请尝试dirname
:
dirname(" C:\\Users\\jam\\Downloads\\tomato\\roja.exe")
" C:/Users/jam/Downloads/tomato"
和basename
获取文件名:
basename(" C:\\Users\\jam\\Downloads\\tomato\\roja.exe")
[1] "roja.exe"
编辑
使用正则表达式我会使用这样的东西:
gsub('(.*)[\\](.*)','\\1' ,"C:\\Users\\jam\\Downloads\\tomato\\roja.exe")
[1] "C:\\Users\\jam\\Downloads\\tomato"
gsub('(.*)[\\](.*)','\\2' ,"C:\\Users\\jam\\Downloads\\tomato\\roja.exe")
[1] "roja.exe"