MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Position

  • To: mathgroup at smc.vnet.net
  • Subject: [mg67668] Re: Position
  • From: bghiggins at ucdavis.edu
  • Date: Tue, 4 Jul 2006 01:57:02 -0400 (EDT)
  • References: <e8ashi$g8j$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Bruce,

Consider the following list:

str = {"The" , " negative", "", "signed", "abc elements", " go",
     "abc to" , "zero" }


Now let us devise a test for each element of our list using
StringMatchQ

myTest = StringMatchQ[ToString[#], "abc" ~~ __] &

Then apply the test to your pattern in Position

Position[str,_?myTest]


{{5},{7}}

Note the reason we wrap the slot value of our test with ToString is
that the algorithm of Position inserts the list str into the slot and
since it has a head of List you get an error message, though the test
does work. Use Trace to see how this occurs.

Hope this helps,

Cheers,
Brian


Bruce Colletti wrote:
> Let X be a list of strings having diverse lengths (some are the null string "").
>
> What command returns the position in X of the first element that starts with "abcd"?
>
> Presumably the command looks like Position[X,...,Heads->False], but my attempts have come up dry.  Although StringTake[Y,4]=="abcd" would seem to be part of the command, this fails when the string's length is less than 4.
> 
> Thankx.
> 
> Bruce


  • Prev by Date: Hexagonal indexing?
  • Next by Date: RE: StringReplace and WordBoundary
  • Previous by thread: Re: Position
  • Next by thread: StringReplace and WordBoundary