Excel 如何查找具有特定字符的文件名
我有数百个文本文件,其名称如下:Excel 如何查找具有特定字符的文件名,excel,matlab,select,wolfram-mathematica,Excel,Matlab,Select,Wolfram Mathematica,我有数百个文本文件,其名称如下: D14 J4N4-BAPN_633nm_20x_100%累积点1和D14 J4N5-NOBAPN_633nm_20x_100%累积点3,如下图所示: 我想选择名称包含BAPN的文件作为一个组,而NOBAPN作为另一个组。但是BAPN和NOBAPN包含与BAPN相同的字符。我怎样才能做到这一点 Simple regex aughta做你想做的事: (BAPN)|(NOBAPN) 你可以在这里查看- 这会将这些精确的字符串捕获为单独的捕获,而不会重叠。如果可以使
D14 J4N4-BAPN_633nm_20x_100%累积点1
和D14 J4N5-NOBAPN_633nm_20x_100%累积点3
,如下图所示:
我想选择名称包含
BAPN
的文件作为一个组,而NOBAPN
作为另一个组。但是BAPN
和NOBAPN
包含与BAPN
相同的字符。我怎样才能做到这一点 Simple regex aughta做你想做的事:
(BAPN)|(NOBAPN)
你可以在这里查看-
这会将这些精确的字符串捕获为单独的捕获,而不会重叠。如果可以使用连字符,则很容易
Select[{"D14 J4N4-BAPN_633nm_20x_100%_30accu_10s_point 1",
"D14 J4N5-NOBAPN_633nm_20x_100%_30accu_10s_point 3"},
StringMatchQ[#, "*-BAPN*"] &]
否则,使用补码
获得不太具体的情况
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]]
此外,还介绍了Nieminen正则表达式的一个应用
regexcases = StringCases[stringlist, RegularExpression["(BAPN)|(NOBAPN)"]];
Pick[stringlist, regexcases /. {"BAPN"} -> True]
您还可以使用dir命令对所需文件进行排序
要使用BAPN获取文件名,请执行以下操作:
set1 = dir('*-BAPN*.txt') ;
使用NOBAPN获取文件名
set2 = dir('*-NOBAPN*.txt') ;
set1和set2将是结构 如果没有一组共同的字符,你会怎么做?一组文件名包含“NOBAPN”,另一组(包含“BAPN”,但*不包含“NOBAPN”)。您想要excel、matlab和mathematica的解决方案吗?展示你在每种语言中尝试过的东西,或者至少澄清你的期望。知道这些很有用。在我的回答中,我已经演示了这个正则表达式在Mathematica中的应用。
{"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"}
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"}
set1 = dir('*-BAPN*.txt') ;
set2 = dir('*-NOBAPN*.txt') ;