Re: Using Cases or Position to Find Strings in a List of Strings
- To: mathgroup at smc.vnet.net
- Subject: [mg119531] Re: Using Cases or Position to Find Strings in a List of Strings
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Wed, 8 Jun 2011 07:13:31 -0400 (EDT)
Hi Gregory,
no, you can just *use* StringCases. To find all files here that end
with .blend you would do:
files = {"~/.blender/9009.blend", "~/.blender/9211.blend",
"~/.blender/.bfont.ttf", "~/.blender/.Blanguages",
"~/.blender/bpydata", "~/.blender/Bpymenus", "~/.blender/plugins",
"~/.blender/quit.blend", "~/.blender/REVISION",
"~/.blender/scripts", "~/.blender/VERSION"}
Flatten@StringCases[files, ___ ~~ ".blend" ~~ EndOfString]
and you get
{"~/.blender/9009.blend",
"~/.blender/9211.blend",
"~/.blender/quit.blend"}
But maybe I missunderstood your problem. I wouldn't use of course
StringPosition because if you only want the strings and not the
positions that it is anyway the wrong function.
Cheers
Patrick
On Tue, 2011-06-07 at 13:10 -0400, Gregory Lypny wrote:
> Hi Patrick,
>
> Yes, I suppose I could map StringCases across the list of strings and then collect all of the results that are not null, but I was hoping it could be done directly with Cases.
>
> Thanks,
>
> Gregory
>
>
>
>
> On Tue, Jun 7, 2011, at 6:51 AM, Patrick Scheibe wrote:
>
> > Hi,
> >
> > what about using StringCases and StringPosition?
> >
> > Cheers
> > Patrick
> >
> > On Tue, 2011-06-07 at 06:48 -0400, Gregory Lypny wrote:
> >> Hello everyone,
> >>
> >> 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?
> >>
> >> Regards,
> >>
> >> Gregory
> >>
> >
> >
>