1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
x = /\A\/(?i-:(say|rails_info|rails\/\/info))(?:\/?\Z|\/([^\/.?]+)(?:\/?\Z|\/([^\/.?]+)\/?))\Z/
puts "x.inspect"
puts x.inspect
puts "x.to_s"
puts x.to_s
puts "escape(x.to_s)"
puts Regexp.escape(x.to_s)
puts "escape(x.inspect)"
puts Regexp.escape(x.inspect)
puts "new(x)"
puts Regexp.new(x)
puts "new(x.to_s)"
puts Regexp.new(x.to_s)
puts "new(x.inspect)"
puts Regexp.new(x.inspect)
class Regexp
alias :ts :to_s
alias :i :initialize
def to_s
x = ts
puts "to_s #{ts}"
x
end
def initialize *s
puts "init: #{s.inspect}"
i *s
end
end
s = "~!@$# %^&*()_+1-2=[x]{1};':\|\\ \\a\\b\\c\",./<>?"
puts "- 1 ------"
z = Regexp.new(s)
puts "- 2 ------"
puts z
puts "- 3 ------"
puts Regexp.escape(s)
puts "- 4 ------"
class R < Regexp
end
u = R.union("/", "*", "/", /./, /\//)
puts "- 5 ------"
puts u
puts u.class
puts "- 6 ------"
u = Regexp.new('/\/[/]')
puts u.to_s
puts "- 7 ------"
u = Regexp.new('/\/[/]')
puts u.inspect
|