正则表达式删除 r 中的 .csv
Regex to remove .csv in r
这将是愚蠢的。
我有一个像这样的字符串:
word <- "dirtyboards.csv"
我想删除 csv 部分并得到 "dirtyboards"。
我正在尝试:
require(stringr)
str_extract(word, ".*[^.csv]")
我进入 return:"dirtyboard"。 “.csv”之前的 "s" 丢失。
我知道我能做到,
gsub(".csv", "", word)
word <- c("dirtyboards.csv","boardcsv.csv")
sub(".csv$","",word)
[1] "dirtyboards" "boardcsv"
尝试
library(stringr)
str_extract(word, '.*(?=\.csv)')
#[1] "dirtyboards"
适用于所提供示例的另一个选项(不是很具体)
str_extract(word, '^[^.]+')
#[1] "dirtyboards"
更新
包括'foo.csv.csv',
word1 <- c("dirtyboards.csv" , "boardcsv.csv", "foo.csv.csv")
str_extract(word1, '.*(?=\.csv$)')
#[1] "dirtyboards" "boardcsv" "foo.csv"
如果你的情况如上图所示,你可以试试:
substr(word, 1, nchar(word)-4)
[1] "dirtyboards"
此代码从第一个字符开始,捕获字符串的其余部分,直到最后四个标记。解决方案完全取决于所涉及的应用程序。
Base R 有一个 ap:
word <- "dirtyboards.csv"
tools::file_path_sans_ext(word)
## [1] "dirtyboards"
这将是愚蠢的。
我有一个像这样的字符串:
word <- "dirtyboards.csv"
我想删除 csv 部分并得到 "dirtyboards"。
我正在尝试:
require(stringr)
str_extract(word, ".*[^.csv]")
我进入 return:"dirtyboard"。 “.csv”之前的 "s" 丢失。
我知道我能做到,
gsub(".csv", "", word)
word <- c("dirtyboards.csv","boardcsv.csv")
sub(".csv$","",word)
[1] "dirtyboards" "boardcsv"
尝试
library(stringr)
str_extract(word, '.*(?=\.csv)')
#[1] "dirtyboards"
适用于所提供示例的另一个选项(不是很具体)
str_extract(word, '^[^.]+')
#[1] "dirtyboards"
更新
包括'foo.csv.csv',
word1 <- c("dirtyboards.csv" , "boardcsv.csv", "foo.csv.csv")
str_extract(word1, '.*(?=\.csv$)')
#[1] "dirtyboards" "boardcsv" "foo.csv"
如果你的情况如上图所示,你可以试试:
substr(word, 1, nchar(word)-4)
[1] "dirtyboards"
此代码从第一个字符开始,捕获字符串的其余部分,直到最后四个标记。解决方案完全取决于所涉及的应用程序。
Base R 有一个 ap:
word <- "dirtyboards.csv"
tools::file_path_sans_ext(word)
## [1] "dirtyboards"