 
 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 | ||
|---|---|---|
| Code | Expected | Actual | 
| 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 |