【发布时间】:2019-05-11 21:07:02
【问题描述】:
在 R 中,我试图匹配来自文件名向量的一系列字符串。我只想要那些没有以 .tif 结尾的字母
allfiles <- c("181129_16_00_class_mlc.tif", "181129_16_00.tif.aux.xml", "181129_17_00_01_19.tif", "181129_17_00_01_20.tif", "181129_17_00_01_23.tif", "181129_17_00_01_24.tif", "181129_17_00_01_25.tif", "181129_17_00_01_26.tif", "181129_17_00_01_27.tif", "181129_17_00_01_28.tif", "181129_17_00_01_29.tif", "181129_17_00_01_30.tif")
grepl("^[0-9_]+[.tif]", allfiles)
grepl("^[0-9_]+[.tif]$", allfiles)
返回:
[1] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
为什么美元符号会失败?我对第二个 grepl 的预期结果是:
[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
【问题讨论】:
-
对不起,错字,给你。
-
应该是
[.tif]+$?或者只是\.tif$? -
"^[0-9_]+\\.tif$" 有效(需要双重反冲),但我仍然不明白为什么 [.tif]$ 失败。
-
[.tif]表示“.、t、i或f中的任何一个字符。”这不是你想要表达的。