And*_*ich 30 regex indexing r vector
我在R中有以下向量:
X <- c("mama.log", "papa.log", "mimo.png", "mentor.log")
Run Code Online (Sandbox Code Playgroud)
如何识别另一个仅包含以"m"开头并以".log"结尾的元素的向量?
koh*_*ske 55
你可以使用grepl正则表达式:
X[grepl("^m.*\\.log", X)]
Run Code Online (Sandbox Code Playgroud)
G. *_*eck 24
试试这个:
grep("^m.*[.]log$", X, value = TRUE)
## [1] "mama.log" "mentor.log"
Run Code Online (Sandbox Code Playgroud)
这种变化是使用glob而不是正则表达式:
grep(glob2rx("m*.log"), X, value = TRUE)
## [1] "mama.log" "mentor.log"
Run Code Online (Sandbox Code Playgroud)
stringr包装上的文档说:
str_subset()是一个包装器x[str_detect(x, pattern)],相当于grep(pattern, x, value = TRUE)。str_which()是一个包装器which(str_detect(x, pattern)),相当于grep(pattern, x)。
因此,在您的情况下,使用tidyverse替代R 来完成任务的更优雅的方法如下。
library(tidyverse)
c("mama.log", "papa.log", "mimo.png", "mentor.log") %>%
str_subset(pattern = "^m.*\\.log")
Run Code Online (Sandbox Code Playgroud)
产生输出:
[1] "mama.log" "mentor.log"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34509 次 |
| 最近记录: |