Is there an easy way to test if a string is printable (doesn’t contain
control characters)? Something easier than listing out all the letters,
numbers, and punctuation and checking each character.
Mike S.
Is there an easy way to test if a string is printable (doesn’t contain
control characters)? Something easier than listing out all the letters,
numbers, and punctuation and checking each character.
Mike S.
if(string =~ /.[\a\b\e\f\n\r\t\v]./)
puts “Invalid string”
else
puts string + " is ok"
end
From: “Mike S.” [email protected]
Is there an easy way to test if a string is printable (doesn’t contain
control characters)? Something easier than listing out all the letters,
numbers, and punctuation and checking each character.
Based on:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/248540
To test for non-printable characters, use:
str =~ /[^[:print:]]/
Regards,
Bill
Bill K. wrote:
str =~ /[^[:print:]]/
Even though I am not the OP I tried that and using index but none of
them seem to work. I get an error message saying “warning character
class has ‘[’ without escape” followed by “warning regexp has ‘]’
without escape” and the return is nil regardless what is in the string.
Is there something I am missing here?
Bill K. wrote:
Even though I am not the OP I tried that and using index but none of
irb(main):117:0> “abc\ndef” =~ /[^[:print:]]/
=> 3 # yes, a non-printable character was found at idx 3irb(main):118:0> “abcdef” =~ /[^[:print:]]/
=> nil # no, a non-printable character was not found
OK, I see what I did. I forgot the trailing colon. Still getting used
to the language and regular expressions.
probably not exactly what you’re looking for but I use this quite often
for
white space removal:
" a".strip.empty?
From: “Michael W. Ryder” [email protected]
them seem to work. I get an error message saying “warning character
class has ‘[’ without escape” followed by “warning regexp has ‘]’
without escape” and the return is nil regardless what is in the string.
Is there something I am missing here?
Not sure. It works for me, without warnings even with ruby -w on:
ruby 1.8.4 (2005-12-24) [i386-mswin32]
And in IRB:
irb(main):117:0> “abc\ndef” =~ /[^[:print:]]/
=> 3 # yes, a non-printable character was found at idx 3
irb(main):118:0> “abcdef” =~ /[^[:print:]]/
=> nil # no, a non-printable character was not found
Regards,
Bill
On 5/16/07, Michael W. Ryder [email protected] wrote:
OK, I see what I did. I forgot the trailing colon. Still getting used
to the language and regular expressions.
Regular expression syntax is probably best thought of as a language of
it’s own. Or perhaps a family of languages since there are so many
dialects.
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs