如果你能使用连字符,这就很容易了。
Select[{"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 1",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 3"},
StringMatchQ[#, "*-BAPN*"] &]
{"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 1"}
否则,请使用补集
来获得不太具体的情况。stringlist = {
"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 2",
"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 1",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 3",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 2",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 1"};
posnobapn = Position[stringlist , _?(StringContainsQ[#, "NOBAPN"] &), Heads -> False];
posbapn = Position[stringlist , _?(StringContainsQ[#, "BAPN"] &), Heads -> False];
listbapn = Extract[stringlist , Complement[posbapn, posnobapn]]
{"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 2",
"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 1"}
listnobapn = Extract[stringlist , posnobapn]
{"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 3",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 2",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 1"}
此外,还有一个关于Nieminen正则表达式的应用。regexcases = StringCases[stringlist, RegularExpression["(BAPN)|(NOBAPN)"]];
Pick[stringlist, regexcases /. {"BAPN"} -> True]
{"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 2",
"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 1"}
Pick[stringlist, regexcases /. {"NOBAPN"} -> True]
{"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 3",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 2",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 1"}
你也可以使用 dir 命令来对你想要的文件进行排序。
使用 BAPN 获取文件名:
set1 = dir('*-BAPN*.txt') ;
set2 = dir('*-NOBAPN*.txt') ;
set1和set2将是结构体。