Re: Pattern match exactly 0 or 1 times?
- To: mathgroup at smc.vnet.net
- Subject: [mg26411] Re: Pattern match exactly 0 or 1 times?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 20 Dec 2000 00:21:35 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <91f70k$548@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
found = False;
lst = {"b", "c", "a", "a", "q"} /.
x___ /; x == "a" :> If[! found, found = True; alpha, x]
??
ReplaceFirst[expr_, pat_, new_] :=
Module[{pos},
pos = Position[expr , pat];
If[{} =!= pos, ReplacePart[expr, new, First[pos]], expr]
]
???
Regards
Jens
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.