This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.

Comparing With Regular Expressions
CodeExpectedActual
string = 'This is a 30-character string.'
if string =~ /([0-9]+)-character/ and $1.to_i == string.length
  "Yes, there are #$1 characters in that string."
end
"Yes, there are 30 characters in that string." "Yes, there are 30 characters in that string."
match = Regexp.compile('([0-9]+)-character').match(string)
if match && match[1].to_i == string.length
  "Yes, there are #{match[1]} characters in that string."
end
"Yes, there are 30 characters in that string." "Yes, there are 30 characters in that string."
string = "123"
case string
when /^[a-zA-Z]+$/
  "Letters"
when /^[0-9]+$/
  "Numbers"
else
  "Mixed"
end
"Numbers" "Numbers"
/something/
Regexp.new("something")
Regexp.compile("something")
%r{something}
/something/mxi
Regexp.new('something', 
           Regexp::EXTENDED + Regexp::IGNORECASE + Regexp::MULTILINE)
%r{something}mxi
case_insensitive = /mangy/i
case_insensitive =~ "I'm mangy!"
4 4
case_insensitive =~ "Mangy Jones, at your service."
0 0
multiline = /a.b/m
multiline =~ "banana\nbanana"
5 5
/a.b/ =~ "banana\nbanana"
nil nil
/a\nb/ =~ "banana\nbanana"
5 5
extended = %r{ \ was # Match " was"
               \s    # Match one whitespace character
                a    # Match "a" }xi
extended =~ "What was Alfred doing here?"
4 4
extended =~ "My, that was a yummy mango."
8 8
extended =~ "It was\n\n\na fool's errand"
nil nil