Michael W. Ryder wrote:
> Alex Young wrote:
>> Michael W. Ryder wrote:
>>> As part of a method I am playing with while learning Ruby I need to 
>>> be able to determine which characters in a string are non-printable.  
>>> What is the "best" method for determining if a character is 
>>> printable, such as an "A", or unprintable, such as a tab?
>>> While I could create a list of printable characters using ranges is 
>>> this the best way to do this?
>>>
>> The POSIX character classes are for exactly this:
>>
>> irb(main):001:0> "A \n B \t C".gsub(/[[:graph:]]/, '')
>> => " \n  \t "
>> irb(main):002:0> "A \n B \t C".gsub(/[[:print:]]/, '')
>> => "\n\t"
>>
> 
> This is very close to what I am looking for.  If I use
> "A \n B \t C".gsub(/[^[:graph:]]/, '')
> it returns "ABC", but I need to keep the spaces and have not been able 
> to figure out how to include them in the output so that it shows "A B C".
> Thank you for your assistance, it has given me a starting point and I 
> will have to spend some time experimenting and researching to reach the 
> final step.

You're nearly there.  Look a little closer at my suggestion, 
particularly the second regex.

-- 
Alex