Date: Jan 23, 2013 12:19 PM
Author: Doug Schwarz
Subject: Re: Help using textscan or sscanf

In article <kdn7t6$ci1$1@newscl01ah.mathworks.com>,
"james bejon" <jamesbejon@yahoo.co.uk> wrote:

> % What's the rule for getting '09837381019' to '4412373810', e.g., "If there
> are 11 digits, hack off the first 3 and the last 2 and stick a 4412 on the
> front"?
>
> S = '09837381019';
> regexprep(S, '^[0-9]{3}([0-9]{6})[0-9]{2}$', '4412$1')
>
> % Seems like you have a lot of different cases and rules. If you list all of
> them, I'm sure we could come up with a regexp that will handle them all;
> otherwise, there's a risk that the regexps will mess each other up


Rather than '[0-9]', use '\d':

regexprep(S, '^\d{3}(\d{6})\d{2}$', '4412$1')

--
Doug Schwarz
dmschwarz&ieee,org
Make obvious changes to get real email address.