我有一个表格,其中的字符串列格式如下
abcdWorkstart.csv
abcdWorkcomplete.csv
我想提取该文件名中的最后一个单词。所以我认为开始模式是“工作”这个词,结束模式是“.csv”。我用 grepl 写了一些东西,但没有用。
grepl("Work{*}.csv", data$filename)
基本上我想提取 Work 和 .csv 之间的任何内容
期望的结果:
start
complete
最佳答案
作为替代方法,删除您不想要的所有内容。
x <- c("abcdWorkstart.csv", "abcdWorkcomplete.csv")
gsub("^.*Work|\\.csv$", "", x)
#[1] "start" "complete"
请注意:
我必须使用
gsub
.因为我先删除了^.*Work
然后 \\.csv$
.对于
[\\s\\S]
或 \\d\\D
...(不适用于 [g]?sub)https://regex101.com/r/wFgkgG/1
与 akruns 方法一起使用:
regmatches(v1, regexpr("(?<=Work)[\\s\\S]+(?=[.]csv)", v1, perl = T))
str1<-
'12
.2
12'
gsub("[^.]","m",str1,perl=T)
gsub(".","m",str1,perl=T)
gsub(".","m",str1,perl=F)
.
也匹配 \n
使用 R 引擎时。
关于r - 使用grepl提取R中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060891/