我试图用 grep 命令匹配表达式的开头和结尾,但我无法做到这一点。例如,考虑以下表达式。
filenames <- c("S2abc.6h", "S2abc.4h", "S2abc.0h","S4abc.6h","S2xyz.6h")
Run Code Online (Sandbox Code Playgroud)
我想查找以 S2 开头并以 6h 结尾的所有文件。我可以使用以下命令选择以 S2 开头的文件:
grep("S2", filenames, value = TRUE)
Run Code Online (Sandbox Code Playgroud)
但我无法在 grep 中使用通配符。
> grep("S2*6h", filenames, value = TRUE)
character(0)
Run Code Online (Sandbox Code Playgroud)
我认为你的使用方法grep很好,你只需要稍微调整你使用的正则表达式来匹配你想要的文件名。
> matches <- grep("^S2.*\\.6h$", filenames, ignore.case = T)
> matches
[1] 1 5
> filenames[matches]
[1] "S2abc.6h" "S2xyz.6h"
Run Code Online (Sandbox Code Playgroud)
我使用的正则表达式是:
^S2.*\\.6h$
Run Code Online (Sandbox Code Playgroud)
这将匹配以以下开头S2和结尾的任何文件名.6h