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 Steiner
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 Steiner
if(string =~ /.*[\a\b\e\f\n\r\t\v].*/)
puts "Invalid string"
else
puts string + " is ok"
end
On 5/15/07, Mike Steiner <mikejaysteiner@gmail.com> wrote:
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 Steiner
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
From: "Mike Steiner" <mikejaysteiner@gmail.com>
Bill Kelly wrote:
From: "Mike Steiner" <mikejaysteiner@gmail.com>
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:]]/
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?
Regards,
Bill
Bill Kelly wrote:
Based on: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/248540
To test for non-printable characters, use:
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?
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
From: "Michael W. Ryder" <_mwryder@worldnet.att.net>
Bill Kelly wrote:
From: "Michael W. Ryder" <_mwryder@worldnet.att.net>
Bill Kelly wrote:
Based on: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/248540
To test for non-printable characters, use:
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?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 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.
Regards,
Bill
probably not exactly what you're looking for but I use this quite often for
white space removal:
" a".strip.empty?
On 5/16/07, Michael W. Ryder <_mwryder@worldnet.att.net> wrote:
Bill Kelly wrote:
> From: "Michael W. Ryder" <_mwryder@worldnet.att.net>
>> Bill Kelly wrote:
>>>
>>> Based on:
>>> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/248540
>>>
>>> To test for non-printable characters, use:
>>>
>>> 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?
>
> 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
>OK, I see what I did. I forgot the trailing colon. Still getting used
to the language and regular expressions.> Regards,
>
> Bill
>
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.
On 5/16/07, Michael W. Ryder <_mwryder@worldnet.att.net> wrote:
OK, I see what I did. I forgot the trailing colon. Still getting used
to the language and regular expressions.
--
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/