5

例子:

test = {"a" -> {{1}, 12}, "b" -> {13}}

我想用这种模式在列表中找到所有表达式:

_ -> {_,_}

第一个元素 "a" -> {{1}, 12} 由该模式表示。

但是,这些表达式都不起作用:

Cases[test,_->{_,_}], Cases[test,_->_], Cases[test,Rule[_,_]], etc.

任何意见,将不胜感激。

4

1 回答 1

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}}
于 2009-10-06T13:02:31.170 回答