Re: Pattern match exactly 0 or 1 times?
- To: mathgroup at smc.vnet.net
- Subject: [mg26396] Re: [mg26383] Pattern match exactly 0 or 1 times?
- From: Ken Levasseur <Kenneth_Levasseur at uml.edu>
- Date: Wed, 20 Dec 2000 00:21:25 -0500 (EST)
- References: <200012160740.CAA05177@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Gavin:
I don't know exactly what you want to do but, for example, if you wanted
to square the first prime number in a list of positive integers you
could do this:
In[1]:=
{4, 6, 7, 42, 3, 9, 19} /.
{{a___, b_, c___} :> {a, b^2, c} /; PrimeQ[b]}
Out[1]=
{4, 6, 49, 42, 3, 9, 19}
In general, preceeding and following your desired pattern with
BlankNullSequence's will force Mathematica to only scan your data once.
Ken Levasseur
Mathematical Sciences
UMass Lowell
Three credit on-line Introduction to Mathematica starts at the end of
January: http://faculty.uml.edu/klevasseur/courses/m419/m419.html
Gavin Scott wrote:
> Is there a way to specify a pattern which will match exactly zero or
> one times? I find myself wanting somethinglike the standard regular
> expression '?' operator, but can't see a way to do this with
> Mathematica's pattern features. The closest I've been able to come
> is something like:
>
> x___ /; x=="a"
>
> which will match zero or more copies of a specific value. I'd like
> to match no more than one though.
>
> Is there anything like a general Regular Expression package for
> Mathematica anywhere? I did a quick search and didn't find anything
> like this, so I'm wondering if my desire for such a thing simply
> indicates that there's something fundamental about Mathematica
> that I don't get yet which would eliminate the need for this.
>
> Thanks,
>
> G.
- References:
- Pattern match exactly 0 or 1 times?
- From: gavin@allegro.com (Gavin Scott)
- Pattern match exactly 0 or 1 times?