MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Pattern Matching Question

  • To: mathgroup at
  • Subject: [mg116714] Re: Pattern Matching Question
  • From: "Scot T. Martin" <smartin at>
  • Date: Fri, 25 Feb 2011 06:33:16 -0500 (EST)

One way would be with PatternTest[...], abbreviated as ?.

For instance, Power[x,_?AtomQ] would match for Power[x,5] but not Power[x,Plus[_,_]]. That might be what you're looking for.

If you are looking for something more advanced, you might need to go with Power[x,_?(Head[#]!==Plus&)]

-----Original Message-----
From: Just A Stranger [mailto:forpeopleidontknow at]
Sent: Thursday, February 24, 2011 06:24
To: mathgroup at
Subject: [mg116714] [mg116702] Pattern Matching Question

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 :)

  • Prev by Date: Re: Pattern Matching Question
  • Next by Date: Re: Which, Switch, If, and Piecewise
  • Previous by thread: Re: Pattern Matching Question
  • Next by thread: Re: Pattern Matching Question