【发布时间】:2011-10-01 15:58:57
【问题描述】:
我需要在列表的第二级进行字符串匹配,但在第一级返回真实案例(第一级中有我需要对返回进行分类的信息)。
First /@ GatherBy[#, #[[3]] &] &@
Cases[#, x_List /;
MemberQ[x, s_String /;
StringMatchQ[s, ("*PHYSICAL EXAMINATION*"),
IgnoreCase -> True]], {2}] &@
Cases[MemoizeTable["Diagnostic_table.txt"], {_,
11111, __}]
顶部的 GatherBy 命令只是按日期组织所有条目,所以我没有得到任何重复。然后我在诊断表中询问具有与字符串“物理检查”匹配的术语的案例。
我只需要搜索列表的第二级。如果我只搜索第一个,我不会返回所有真实案例。如果我搜索第一级和第二级,我会得到重复项(某些情况下,第一级和第二级都包含所需的字符串,因此列表的第一级和第二级都会分别返回)。
我需要在第二级搜索字符串,然后只返回包含匹配的第二级的列表的第一级。我不需要排除第二级,我只是不希望它像搜索第一级和第二级那样单独返回。
任何帮助将不胜感激!
【问题讨论】:
-
例如,如果我在列表 {a,b,c,{x,y},d,x} 中搜索第二级的“x”,上面的函数会给我 { x,y}。我想要的是它给我 {a,b,c,{x,y},d,x}。
标签: list wolfram-mathematica pattern-matching string-matching levels