我有一个字符串:
word <- "dirtyboards.csv"
我想删除csv部分并获取“脏板”。
我在尝试:
require(stringr)
str_extract(word, ".*[^.csv]")
我得到了回报:“脏板”。 “.csv”之前的“s”丢失了。
我知道我能做到,
gsub(".csv", "", word)
答案 0 :(得分:7)
尝试
library(stringr)
str_extract(word, '.*(?=\\.csv)')
#[1] "dirtyboards"
另一个选项适用于提供的示例(并非非常具体)
str_extract(word, '^[^.]+')
#[1] "dirtyboards"
包括&#39; foo.csv.csv&#39;,
word1 <- c("dirtyboards.csv" , "boardcsv.csv", "foo.csv.csv")
str_extract(word1, '.*(?=\\.csv$)')
#[1] "dirtyboards" "boardcsv" "foo.csv"
答案 1 :(得分:7)
Base R有一个ap:
word <- "dirtyboards.csv"
tools::file_path_sans_ext(word)
## [1] "dirtyboards"
答案 2 :(得分:1)
如果您的情况如此呈现,您可以尝试:
substr(word, 1, nchar(word)-4)
[1] "dirtyboards"
此代码从第一个字符开始,并捕获字符串的其余部分,直到最后四个令牌。解决方案完全取决于所涉及的应用程序。
答案 3 :(得分:0)
word <- c("dirtyboards.csv","boardcsv.csv")
sub(".csv$","",word)
[1] "dirtyboards" "boardcsv"