是否有一种基于';和';和';或';标准(使用grepl)?

是否有一种基于';和';和';或';标准(使用grepl)?,r,filtering,grepl,R,Filtering,Grepl,我需要过滤196个超声波样本的列表。列表中的名称看起来像SV-14-001_P、SV-14-001_S1、SV-20-001_P、SV-20-004_S2。它们都以SV开头,指的是样品来自的公司。第二个数字是样品的直径(有五种不同的直径,但在这个例子中我只使用14)。第三个三位数是当前直径的样本编号,最后一个数字是指波类型(P、S1或S2)。我想使用脚本的示例列表来选择S波开始或P波开始。这意味着直径应相等,波类型应为剪切波S1或S2(可组合在一个列表中)或P 到目前为止,我已经成功地根据“an

我需要过滤196个超声波样本的列表。列表中的名称看起来像SV-14-001_P、SV-14-001_S1、SV-20-001_P、SV-20-004_S2。它们都以SV开头,指的是样品来自的公司。第二个数字是样品的直径(有五种不同的直径,但在这个例子中我只使用14)。第三个三位数是当前直径的样本编号,最后一个数字是指波类型(P、S1或S2)。我想使用脚本的示例列表来选择S波开始或P波开始。这意味着直径应相等,波类型应为剪切波S1或S2(可组合在一个列表中)或P

到目前为止,我已经成功地根据“and”进行筛选,只需使用不同的模式运行相同的代码两次,但这会给我一个包含S1样本或S2样本的列表,而不是包含S1和S2样本的列表。我也试过了
[grepl(“S2\| S2”,过滤文件夹)]
,但这不起作用

parent.folder <- "//home.org.aalto.fi/meijsl1/data/Documents/GAGS/Ultrasonic 
data/Ultrasonic data - Plots"
sub.folders <- list.dirs(parent.folder, recursive=FALSE)
filt.folders = sub.folders[grepl("SV-14", sub.folders)]
filt.folders =filt.folders[grepl("S2", filt.folders)]

parent.folder要构建主图案,可以使用字符类:

"SV-14-[^_]*_S[12]"

它将匹配
SV-14-
,然后是
\uu
以外的任何0个或更多字符,然后是
\u
,然后是
S
1
2

如果要将其作为一个整体子目录进行匹配,则需要考虑
/
\
字符:

"([\\\\/]|^)SV-14-[^_]*_S[12]([\\\\/]|$)"
其中
([\\\/]\^)
匹配
\
/
或字符串开头和
([\\\/]\$)
匹配
\
/
或字符串结尾


请参阅。

尝试
“^SV-14-[^\u]*\ u S[12]”
它不给出错误,但给出了一个字符(空),它工作正常!我删除了SV之前的“^”,现在它实际上是正确的列表。谢谢你,威克托