2009-10-06 5 views
5

Beispiel:Wie kann ich in Mathematica Muster finden, die Regeln und Listen enthalten?

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

Ich möchte alle Ausdrücke in der Liste mit diesem Muster finden:

_ -> {_,_} 

Das erste Element, "a" -> {{1}, 12}, wird durch dieses Muster dargestellt.

jedoch keiner dieser Ausdrücke funktionieren:

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

Jede Beratung wird gebeten.

Antwort

9

Was Sie suchen ist HoldPattern:

In[1]:= test = {"a" -> {{1}, 12}, "b" -> {13}}; 

In[2]:= Cases[test, HoldPattern[_ -> {_, _}]] // InputForm 
Out[2]= {"a" -> {{1}, 12}} 

EDIT: Dies auch mit dem Namen Muster Variablen arbeitet.

In[3]:= Cases[test, HoldPattern[_ -> {x_, _}] :> x] 
Out[3]= {{1}} 
+0

Ausgezeichnet. Das scheint genau das zu sein, wonach ich suche. Ist es möglich, benannte Mustervariablen, z. _-> {_, _ x} /; x <10 während HoldPattern? – Tony

+0

Ausgezeichnet! Top Kumpel. – Tony

Verwandte Themen