示例:
test = {"a" -> {{1}, 12}, "b" -> {13}}
我想用这种模式找到列表中的所有表达式:
_ -> {_,_}
第一个元素“a” - > {{1},12}由此模式表示。
但是,这些表达都不起作用:
Cases[test,_->{_,_}], Cases[test,_->_], Cases[test,Rule[_,_]], etc.
任何建议都将受到赞赏。
答案 0 :(得分:9)
您要找的是HoldPattern
:
In[1]:= test = {"a" -> {{1}, 12}, "b" -> {13}};
In[2]:= Cases[test, HoldPattern[_ -> {_, _}]] // InputForm
Out[2]= {"a" -> {{1}, 12}}
编辑:这也适用于命名模式变量。
In[3]:= Cases[test, HoldPattern[_ -> {x_, _}] :> x]
Out[3]= {{1}}