Re: Checking for a given phrase in an expression
- To: mathgroup at smc.vnet.net
- Subject: [mg60768] Re: Checking for a given phrase in an expression
- From: dh <dh at metrohm.ch>
- Date: Wed, 28 Sep 2005 01:41:03 -0400 (EDT)
- References: <dhau80$is9$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
HI, in general this is not possible. Mathematically it is in general not even possible to decide if two expressions are identical or not. Mathematica can compare patterns. Now consider the FullForm : FullForm[1 + x + x y + Log[Sin[z]]] --> Plus[1, x, Times[x, y], Log[Sin[z]]] FullForm[x + Log[Sin[z]]] --> Plus[x, Log[Sin[z]]] you see the smaller pattern does not occur in the larger one. If you want detect the sub-pattern you would have to interprete the pattern for meaning, something Mathematica can not do. Of course if you are searching for a simplier pattern like: Log[Sin[z]], that is contained in the FullForm of the larger expression, Mathematica will be able to find it (e.g. with Position). If you really are a "workoholic" a could create a pattern recognition system that can recognize a limited set of patterns by defining a suitable "Normalform" for your expressions that would allow to mechanically decide if a searched pattern is contained or not. sincerely, Daniel lost.and.lonely.physicist at gmail.com wrote: > Hello everyone > > Is it possible to ask Mathematica to check if a given phrase occurs in > an expression? Say I have > > aa = 1 + x + x y + Log[Sin[z]] > > and > > bb = x + Log[Sin[z]] > > Can Mathematica tell me such a phrase bb exists in aa? Can it tell me > its 'position' within the expression aa? > > Thanks for the help! >
- Follow-Ups:
- Re: Re: Checking for a given phrase in an expression
- From: Andrzej Kozlowski <andrzej@yhc.att.ne.jp>
- Re: Re: Checking for a given phrase in an expression