Re: String Deletion

• To: mathgroup at smc.vnet.net
• Subject: [mg121503] Re: String Deletion
• From: David Bailey <dave at removedbailey.co.uk>
• Date: Sun, 18 Sep 2011 04:08:56 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <j51sst\$pfv\$1@smc.vnet.net>

```On 17/09/2011 11:30, Don wrote:
> Given a simple list of strings:
>
> list =  List["Z:XBREG","Z:XBREH","Z:XBREI","Z:ZZ6P","Z:ZZ6Q","aye"]
>
> how does one delete all the strings with a colon (:) anywhere in the string?
>
> DeleteCases[list, ___:___]  looks very logical  and should work,
> but of course it doesn't .
>
> Also, there is a StringCases function which would seem
> to correspond with the Cases function.  There is a
> DeleteCases function but no string counterpart, namely,
> DeleteString function.  Any reason for this?
>
>
The short answer (one of several possible) is:

ll={"Z:XBREG","Z:XBREH","Z:XBREI","Z:ZZ6P","Z:ZZ6Q","aye"};
DeleteCases[ll,x_/;StringMatchQ[x,___~~":"~~___]]

{"aye"}

The longer answer is to encourage you to learn the syntax of
Mathematica! If you had, you would realise that the colon in
DeleteCases[list, ___:___] appears in the context of an operator - it is
not a character in a string, so that expression is not going to pick out
strings containing a colon, any more than it is going to pick out
strings containing "_", or "[", or "]".

Any computer language that allows character/string manipulation, has to
distinguish between characters representing themselves, and characters
that are part of the expression syntax.

StringCases operates on a string (although the first argument can be a
list of strings, but that only applies StringCases to every item of the
list).

David Bailey
http://www.dbaileyconsultancy.co.uk

```

• Prev by Date: Re: Interactive settings for ParamPlot3D. Mesh not quite working.
• Next by Date: Re: output forms
• Previous by thread: Re: String Deletion
• Next by thread: Re: String Deletion