正则表达式删除r中的.csv

vag*_*ond 0 regex r stringr

这将是愚蠢的.

我有一个字符串:

word <- "dirtyboards.csv" 
Run Code Online (Sandbox Code Playgroud)

我想删除csv部分并获得"脏板".

我在尝试:

require(stringr)
str_extract(word, ".*[^.csv]")
Run Code Online (Sandbox Code Playgroud)

我得到了回报:"脏板".".csv"之前的"s"丢失了.

我知道我能做到

gsub(".csv", "", word)

akr*_*run 7

尝试

library(stringr)
str_extract(word, '.*(?=\\.csv)')
#[1] "dirtyboards"
Run Code Online (Sandbox Code Playgroud)

提供示例的另一个选项(并非非常具体)

str_extract(word, '^[^.]+')
#[1] "dirtyboards" 
Run Code Online (Sandbox Code Playgroud)

更新

包括'foo.csv.csv',

word1 <- c("dirtyboards.csv" , "boardcsv.csv", "foo.csv.csv")
str_extract(word1, '.*(?=\\.csv$)')
#[1] "dirtyboards" "boardcsv"    "foo.csv"    
Run Code Online (Sandbox Code Playgroud)


Tyl*_*ker 7

基地R有一个ap:

word <- "dirtyboards.csv" 
tools::file_path_sans_ext(word)

## [1] "dirtyboards"
Run Code Online (Sandbox Code Playgroud)