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 > >> > > > > >