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.

```

• Prev by Date: RE: bug with Compile ?
• Next by Date: Problem with the GaussianQuadratureWeights[n, a, b]
• Previous by thread: Pattern match exactly 0 or 1 times?
• Next by thread: Re:Pattern match exactly 0 or 1 times?