From: "Michael W. Ryder" <_mwryder@...> Date: 2007-04-21T05:15:05+09:00 Subject: Re: Finding non-printable characters using Regular Expressions 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.