我试图仅使用包含多个句点字符的文件路径删除文件扩展名。其他问题建议使用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"
答案 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
}