Re: Pattern Matching Question
- To: mathgroup at smc.vnet.net
- Subject: [mg116734] Re: Pattern Matching Question
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Fri, 25 Feb 2011 06:36:53 -0500 (EST)
I think, Except is your friend. Also, when constructing the Plus pattern, you should use HoldPattern to prevent evaluation of Plus[_,_] into 2_. Here is the rule: x : _^Except[HoldPattern[Plus[_, _]]] :> newForm A simple test: In[2]:= {a^b, a^(b + c)} /. x : _^Except[HoldPattern[Plus[_, _]]] :> newForm Out[2]= {newForm, a^(b + c)} Regards, Leonid On Thu, Feb 24, 2011 at 2:23 PM, Just A Stranger < forpeopleidontknow at gmail.com> wrote: > I'm new to pattern matching, and am stuck on a seemingly simple probem: > > If I want to transform a pattern like > > (I) Power[x,_] i.e. x^_ > > but NOT > > (II) Power[x,Plus[_,_]] i.e. x^(_+_) > > How would I go about making that rule? > > x^_ -> NewForm > > Applies the rule to (II), which I don't want. > > Thank you for your help :) > > > >