Pattern replacement
- To: mathgroup at smc.vnet.net
- Subject: [mg122961] Pattern replacement
- From: "Dr. Wolfgang Hintze" <weh at snafu.de>
- Date: Fri, 18 Nov 2011 07:50:14 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
My questions are rather elementary.
I wish to replace expressions of the form
-1/2+u by 2u-1
-1/3+u by 3u-1
and so on.
Trying the replacement
(1) (-1/2+u)/.(-1/q_ + u) -> (q x-1)
does not work, i.e. leaves the original expression unchanged.
Using FullForm[] to reveal the structure gives
(2) FullForm[Rational[-1, 2] + u]
Now the replacement in explicit form works:
(3) (-1/2+u)/.(Rational[-1, 2] + u) -> (q u -1)
Out: -1+q*u
But this is not a nice way to write it.
My questions are
1) Are there better ways to implement the replacement?
2) How do I "undo" FullForm[], i.e. which command produces -1/2+u from
Rational[-1,2] + u ?
(I can do it by ToExpression["Rational[-1,2] + u"] but maybe there
is another way avoiding going to strings).
Thanks in advance
Wolfgang
- Follow-Ups:
- Re: Pattern replacement
- From: Bob Hanlon <hanlonr357@gmail.com>
- Re: Pattern replacement