Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

Re: Question about DeleteCases to remove list elements based on first character

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124351] Re: Question about DeleteCases to remove list elements based on first character
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Tue, 17 Jan 2012 03:30:45 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

On 1/16/12 at 5:06 PM, adeyoung at andrew.cmu.edu (Andrew DeYoung)
wrote:

>I have a list of strings in which some elements begin with the ";"
>character and some do not.  The ";" character indicates a program
>comment, so I wish to drop all elements in the list that begin with
>the ";" character.

>As a simplified example, suppose I have the following list S:

>S = {"abc", ";def", "ghi", ";jkl", ";  mno", "pqr;X"}

>I wish to drop from S all elements that begin with ";".  So, I want
>to obtain:

>{"abc", "ghi", "pqr;X"}

>Will you please help me know how to do this?  Can this be done with
>DeleteCases?  For example, I tried:

>DeleteCases[S, StringTake[#, 1] == ";"&]

This is very close to something that works. Doing:

In[2]:= DeleteCases[{"abc", ";def", "ghi", ";jkl", ";  mno",
   "pqr;X"}, _?(StringTake[#, 1] == ";" &)]

Out[2]= {abc,ghi,pqr;X}

gives the desired result. But given comparison is between
strings, it  might be better to code this as:

In[3]:= DeleteCases[{"abc", ";def", "ghi", ";jkl", ";  mno",
   "pqr;X"}, _?(StringMatchQ[#, ";" ~~ __] &)]

Out[3]= {abc,ghi,pqr;X}




  • Prev by Date: Re: opposite of AppendTo
  • Next by Date: Re: Question about DeleteCases to remove list elements based on first character
  • Previous by thread: Re: Question about DeleteCases to remove list elements based on first character
  • Next by thread: Re: Question about DeleteCases to remove list elements based on first character