Re: Extracting information from lists
- To: mathgroup at smc.vnet.net
- Subject: [mg63359] Re: Extracting information from lists
- From: "dkr" <dkrjeg at adelphia.net>
- Date: Sun, 25 Dec 2005 02:19:37 -0500 (EST)
- References: <dojefh$fmb$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Tony,
To extract the positions of the first element of runs of a given
integer within a list, a very simple approach is to let a regex do all
the dirty work:
In[23]:=
posFn[x:{__Integer},elem_Integer]:=
First/@StringPosition[StringJoin[ToString/@x],
RegularExpression[ToString[elem]<>"+"],Overlaps->False];
In[25]:=
posFn[{11791681165111876111171},1]
Out[25]=
{1,5,8,12,18,23}
In[26]:=
posFn[{79168116511187611117},1]
Out[26]=
{3,6,10,16}
In[27]:=
posFn[{79168116511187611117},8]
Out[27]=
{5,13}
An equivalent formulation using Mathematica string expressions would
be:
posFnAlt[x:{__Integer},elem_Integer]:=
First/@StringPosition[StringJoin[ToString/@x],ToString[elem]..,
Overlaps->False];
dkr