我有一个如下字符向量:
char <- c("cancer_6_53_7575_tumor.csv", "control_7_4_7363_healthy.csv")
我想提取字符串中以4位患者ID中的“7”开头并以“。”结尾的部分,但是当该患者ID之前有7时,以下方法不起作用。
values <- unlist(qdapRegex::rm_between(char, "7", ".", extract = TRUE))
如何指定它必须以4位数字中的7开头?
答案 0 :(得分:6)
您可以使用:
char <- c("cancer_6_53_7575_tumor.csv", "control_7_4_7363_healthy.csv")
gsub(".*(7\\d{3}.*)\\..*$", "\\1", char)
[1] "7575_tumor" "7363_healthy"
7\\d{3}
.
:(7\\d{3}.*)\\.
\\1
答案 1 :(得分:3)
另一种方法是使用stringr
。
library(stringr)
str_extract(char, '7\\d{3}[^\\.]*')
## [1] "7575_tumor" "7363_healthy"
它会匹配以7
开头的4个数字和点到地址的所有数字 - .
。