File: char_by_charclass.rb

package info (click to toggle)
docdiff 0.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 960 kB
  • sloc: ruby: 13,872; makefile: 92; lisp: 33; sh: 26
file content (23 lines) | stat: -rwxr-xr-x 739 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/ruby
# test character classes on ASCII characters.
# 2003-03-10 Hisashi MORITA

charclasses = ["[:cntrl:]", 
               "[:space:]", "[:blank:]", 
               "[:digit:]", 
               "[:alpha:]", "[:alnum:]", 
               "[:punct:]",
               "[:lower:]", "[:upper:]",  
               "[:print:]", "[:graph:]", 
               "[:xdigit:]"]
chars = (0x00 .. 0xff).to_a

charclasses.each{|charclass|
  member_chars = []
  chars.each{|char|
    if Regexp.new("[#{charclass}]") =~ char.to_a.pack("C*")
      member_chars.push char
    end
  }
  puts "#{charclass}\t#{member_chars.collect{|char|sprintf("\\x%02x", char)}.join}\n\t\t(#{member_chars.collect{|char|char.to_a.pack('C*').inspect[1..-2]}.join})"
}