Re: Pattern matching in functions

*To*: mathgroup at smc.vnet.net*Subject*: [mg54461] Re: Pattern matching in functions*From*: Peter Pein <petsie at arcor.de>*Date*: Sun, 20 Feb 2005 00:11:40 -0500 (EST)*References*: <cv6sop$6pj$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Maximilian Ulbrich wrote: > Hi, > > I would like to find subexpressions using Cases. > In the following case, I expected to find a[b] and a[c] and therefore > get {b,c} as the result. However, I get {l,l}. > What happens and how can I solve this? > > Cases[l^4*a[b][l] + l*a[c][l], x_a[y_] -> y, {0, Infinity}] > > Thanks, > Max > Your pattern doesn't match. Cases[l^4*a[b][l]+l*a[c][l],x_*a[y_][z_]->y] yields {b,c} If l is allways the argument of the functions a[y_], you can replace z_ by l. And don't forget to leave a space or put an astrisk between x_ and a[y_][z_]. There is no match for an object x_ with head a[y_]. -- Peter Pein Berlin