我有一个这样的字符串:
"vehicles/vehicle_type/filename.csv"
我只想保留以下内容:
"filename.csv"
我尝试过这个:
sub('/^(.*[\\\/])/', "", the_string)
但是会收到一个"字符串中未识别的转义符"错误。
basename()
函数。x <- "vehicles/vehicle_type/filename.csv"
basename(x)
# [1] "filename.csv"
或者,如果您想继续使用正则表达式,请调整sub()
函数的调用方式。
sub(".*/", "", x)
# [1] "filename.csv"
.*
移除所有内容,所以 .*/
移除所有内容直到最后一个 /
(因为前面的一个已经包含在“所有内容”中了)。
basename
仅适用于字符,因此取决于路径如何读入R中,您可能需要执行 basename(as.character(x))
。有时当列包含路径名时, R会将它们读取为因子。 - mikey
r
是什么,但如果你真的想要替换,可以使用这个子句/^(?:[^\/]*\/)+/
。如果你只想匹配末尾,可以使用这个/[^\/]+$/
。 - user557597