正则表达式匹配反斜杠

时间:2014-01-20 23:43:05

标签: regex r grep

在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,这不是预期的结果。

关于改进正则表达式的任何想法?

1 个答案:

答案 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"