Re: match 1, replace 2
- To: mathgroup at smc.vnet.net
- Subject: [mg56255] Re: match 1, replace 2
- From: dh <dh at metrohm.ch>
- Date: Wed, 20 Apr 2005 05:31:31 -0400 (EDT)
- References: <d42khj$3ac$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Trevor, it can be done, but the rule is pretty complex: {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}} /. {y : (_Integer ..), z_Integer} :> {Sequence @@ (Sequence @@ {100 + #, -1} & /@ List[y]), z} May be a solution with an intermediate step is more straightforward here (and simplier to understand): t = ls /. x_Integer :> {100 + x, -1} t /. {x : ({_, _} ..), y : {_, _}} :> {x, First[y] - 100} Sincerely, Daniel Trevor Baca wrote: > hi mathgroup, > > what rule takes > > ls = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}} > > to > > {{101, -1, 102, -1, 3}, {104, -1, 5}, {106, -1, 107, -1, 108, -1, > 9}} > > ie, matches all integers but the last in each list and then replaces > each matched integer n with the 2-element sequence Sequence[100 + n, > -1]? > > trevor. >