Re: refering to a long pattern by a variable
- To: mathgroup at smc.vnet.net
- Subject: [mg57752] Re: [mg57713] refering to a long pattern by a variable
- From: yehuda ben-shimol <bsyehuda at gmail.com>
- Date: Tue, 7 Jun 2005 02:04:04 -0400 (EDT)
- References: <200506060821.EAA12505@smc.vnet.net>
- Reply-to: yehuda ben-shimol <bsyehuda at gmail.com>
- Sender: owner-wri-mathgroup at wolfram.com
Hi First you need to recognize that the full form of ___ is BalnkNullSequence[]. The ~~ operator is StingExpression[] generate a function (not a clever one, but it will demonstrate the idea and easily can be modified) makePat[s_String]:=StringExpression @@ (Insert[Characters[s], BlankNullSequence[], 2]) then txt="abcbacabzzcz"; StringCases[txt, ShortestMatch[makePat["bc"]], Overlaps -> False] will return the answer you need. You can call makePat with any string you need (of two characters). yehuda On 6/6/05, marloo3 at mail15.com <marloo3 at mail15.com> wrote: > hello > i wish if i could refer to a long pattren by just a variable, > suppose the: > txt="abcbacabzzcz"; > and the pattern to search is "b"~~___~~"c" > StringCases[txt, ShortestMatch["b" ~~ ___ ~~ "c"], Overlaps -> False] > Out[]={bc, bac, bzzc} > ok, i hope there is a way to supply just the : > pat=Characters["bc"]; > and some procedure will make the "b" ~~ ___ ~~ "c" from the above pat variable > and assign this pattern to pat2 variable so we just write: > StringCases[txt, > ShortestMatch[pat2], Overlaps -> False] > to give the output > Out[]={bc, bac, bzzc} > i have tried it by StringJoin but it does not work. > thanks > > >
- References:
- refering to a long pattern by a variable
- From: marloo3@mail15.com
- refering to a long pattern by a variable