获取文件名和扩展名,其中路径包含多个句点字符'。'

时间:2016-09-07 23:33:18

标签: r

我试图仅使用包含多个句点字符的文件路径删除文件扩展名。其他问题建议使用self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white] ,但它似乎不适用于具有多个句点的路径。是否有其他方法或解决方法我可以使用。

tools::file_path_sans_ext

错误!应为path <- "BONCAT_CE_7142-Q-ConsG09/IMG_Data/87243.assembled.bin_assignment" tools::file_path_sans_ext(path) #> "BONCAT_CE_7142-Q-ConsG09/IMG_Data/87243.assembled.bin_assignment"

2 个答案:

答案 0 :(得分:2)

您可能需要使用一点正则表达式:

sub("\\.[^.]*$", "", path)
# [1] "BONCAT_CE_7142-Q-ConsG09/IMG_Data/87243.assembled"

这将删除字符串的最后一个句点(包括)之后的所有内容,其中$与String的结尾匹配; [^.]*匹配非句点序列和句点\\.

答案 1 :(得分:0)

我决定尽可能地移植python splitext函数。它处理我看到的一些角落案件。

splitext <- function(x) {
    periods <- gregexpr("\\.", x)[[1]]
    if ( periods[1] == -1) {
        result <- c(x, "") 
    }
    else if (length(periods) == 1 ) {
        result <- c( substr(x, 1, periods[1] - 1), substring(x, periods[1] + 1))
    } 
    else {
        result <- c( substr(x, 1, periods[-1] - 1), substring(x, periods[-1] + 1))
    }
    result
}