MathGroup Archive 2011

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

Search the Archive

Re: Using Cases or Position to Find Strings in a List of Strings

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119516] Re: Using Cases or Position to Find Strings in a List of Strings
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Tue, 7 Jun 2011 08:13:48 -0400 (EDT)
  • References: <iskvlh$5rm$1@smc.vnet.net>

Hi,

> I have a list of strings called myListOfFilePaths and I want to find
> which one of those strings ends in ".DS_Store" (a hidden file created by
> the Mac OS).  I can pick it off using Select as
>
> 	Select[myListOfFilePaths, StringMatchQ[#, ___ ~~ ".DS_Store" ~~
> EndOfString]&]
>
> but I can't do it using Cases or Position
>
> 	Cases[myListOfFilePaths, ___ ~~ ".DS_Store" ~~ EndOfString]
>
> 	Position[myListOfFilePaths, ___ ~~ ".DS_Store" ~~ EndOfString]
>
> despite the fact that Head[___ ~~ ".DS_Store" ~~ EndOfString] is StringExpression.  What am I doing wrong?

you need StringCases if your pattern are StringExpressions. For Position 
the situation is more complicated, since StringPosition will return a 
list of the positions within each string, not just the position of the 
string within the list. But you can always do something like this:

Cases[myListOfFilePaths, _String?(StringMatchQ[#, ___ ~~ ".DS_Store" ~~ 
EndOfString]&), {1}]

Position[myListOfFilePaths, _String?(StringMatchQ[#, ___ ~~ ".DS_Store" 
~~ EndOfString] &), {1}]

hth,

albert


  • Prev by Date: Re: Using Cases or Position to Find Strings in a List of Strings
  • Next by Date: Re: plotting contours on a sphere
  • Previous by thread: Re: Using Cases or Position to Find Strings in a List of Strings
  • Next by thread: Re: Using Cases or Position to Find Strings in a List of Strings