KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've noticed a side effect in Ruby/Oniguruma that is only present in 1 out of 4 seemingly equivalent statements. Why is the variable day defined in 009 , but not in 003 , 005 or 007 ? irb(main):001:0> r = /(?<day>\d\d):(?<mon>\d\d)/ => /(?<day>\d\d):(?<mon>\d\d)/ irb(main):002:0> r =~ "24:12" => 0 irb(main):003:0> day NameError: undefined local variable or method `day' irb(main):004:0> "24:12" =~ r => 0 irb(main):005:0> day NameError: undefined local variable or method `day' irb(main):006:0> "24:12" =~ /(?<day>\d\d):(?<mon>\d\d)/ => 0 irb(main):007:0> day NameError: undefined local variable or method `day' irb(main):008:0> /(?<day>\d\d):(?<mon>\d\d)/ =~ "24:12" => 0 irb(main):009:0> day => "24" nb#1: It's the same regex and the same string in all four cases. nb#2: I've verified the behavior in MS Windows and Ubuntu Linux.
Tags (comma-separated)
Save Edits
Cancel