Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: Re: search for an operator in an expression

  • To: mathgroup at
  • Subject: [mg78272] Re: [mg78204] Re: search for an operator in an expression
  • From: Daniel Lichtblau <danl at>
  • Date: Wed, 27 Jun 2007 05:30:14 -0400 (EDT)
  • References: <f5iuqu$a99$> <f5o8jr$5jo$> <>

rob wrote:
> Sir, I tried your suggestion as follows:
> expr = 2 + a*Exp[-b x] + Sin[c + b] + d
> Count[expr, HoldPattern[Plus[__]], Infinity]
> which gives a result of "1". I count 4 "+" in expr. Please, 
> what am I doing wrong? Thanks.
> dh wrote:
>>Hi Daniel,
>>you may use "Count". Take care to search on all "levels" and prevent 
>>evaluation of the operator. Asssuming your expression is in: expr, e.g.:
>>Count[expr, HoldPattern[ Plus[__] ], Infinity]
>>hope this helps, Daniel
>>Daniel wrote:
>>>Is there a way to search for an operator in a symbolic expression? My wish
 >>>is to show that there is only "+" in a very large expression. Rather 
>>>showing an expression on multiple pages I would like to perform a search
>>>that shows there is only "+" between the terms. Converting to a string
>>>does not seem to work since the expression is written on multiple lines
 >>>(fractions, exponents etc..)


If you are looking for the number of plus signs that would appear in the 
infix form then that goes as follows. Find all subexpressions with head 
of Plus, then tally the number of arguments less 1.

Total[Cases[{expr}, HoldPattern[Plus[a__]]:>Length[{a}]-1, Infinity]]

Daniel Lichtblau
Wolfram Research

  • Prev by Date: Re: Re: problem with Pick
  • Next by Date: Re: Re: Why use Java in Mathematica?
  • Previous by thread: Re: search for an operator in an expression
  • Next by thread: Re: Re: search for an operator in an expression