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.