I got different results in Perl and Ruby of this regular expression.
Can
somebody maybe give me a “Ruby Way” solution of this? The output from
Perl is what I want. But I’m currently programming this is Ruby.
In Perl:
#snippet start ==========
sub transform_data
{
my $data = shift;
if ($data=~/^[\d.]+$/) #numbers
{
print “Got here!\n”;
}
else
{
print “’$data’”,"\n";
}
}
my $data = “patched 3 systems:
134.27.56.237
134.27.59.6
134.27.55.43”;
transform_data($data);
#snippet end =========
Output is:
‘patched 3 systems:
134.27.56.237
134.27.59.6
134.27.55.43’
In Ruby:
#snippet start ============
def transform_data(data)
if (data=~/^[\d.]+$/) #numbers
puts “Got here!”
else
puts("’" + data + “’”)
end
end
data = “patched 3 systems:
134.27.56.237
134.27.59.6
134.27.55.43”
transform_data(data)
#snippet end ============
Output is:
Got here!
Now why would it match in Ruby? Am I missing something here?
Regards,
Sam
Hi –
On Tue, 10 Jan 2006, Sam Dela C. wrote:
end
Got here!
Now why would it match in Ruby? Am I missing something here?
^ and $ match start and end of line, not string. For start and end of
string, you want \A and \z (or \Z to ignore final newline).
David
–
David A. Black
[email protected]
“Ruby for Rails”, from Manning Publications, coming April 2006!
NEWER EDITION AVAILABLE
The Well-Grounded Rubyist, Second Edition is now available. An eBook of the previous edition, The Well-Grounded Rubyist is included at no additional cost when you buy the revised edition!
Ruby for Rails helps Rails...
Thanks David.
Yes, after I replaced ^ with \A and $ with \a, it works now.
Another difference learned. I’m discovering new stuffs in Ruby every
day.
Regards,
Sam
[email protected]
01/09/2006 05:54 PM
Please respond to
[email protected]
To
[email protected] (ruby-talk ML)
cc
Subject
Re: regexp problem - differences in Perl and Ruby
Classification
Hi –
On Tue, 10 Jan 2006, Sam Dela C. wrote:
end
Got here!
Now why would it match in Ruby? Am I missing something here?
^ and $ match start and end of line, not string. For start and end of
string, you want \A and \z (or \Z to ignore final newline).
David
–
David A. Black
[email protected]
“Ruby for Rails”, from Manning Publications, coming April 2006!
NEWER EDITION AVAILABLE
The Well-Grounded Rubyist, Second Edition is now available. An eBook of the previous edition, The Well-Grounded Rubyist is included at no additional cost when you buy the revised edition!
Ruby for Rails helps Rails...
Oops sorry, typo, I mean when I replaced ^ with \A and $ with \z
Regards,
Sam
Sam Dela C. [email protected]
01/09/2006 06:05 PM
Please respond to
[email protected]
To
[email protected] (ruby-talk ML)
cc
Subject
Re: regexp problem - differences in Perl and Ruby
Classification
Thanks David.
Yes, after I replaced ^ with \A and $ with \a, it works now.
Another difference learned. I’m discovering new stuffs in Ruby every
day.
Regards,
Sam
[email protected]
01/09/2006 05:54 PM
Please respond to
[email protected]
To
[email protected] (ruby-talk ML)
cc
Subject
Re: regexp problem - differences in Perl and Ruby
Classification
Hi –
On Tue, 10 Jan 2006, Sam Dela C. wrote:
end
Got here!
Now why would it match in Ruby? Am I missing something here?
^ and $ match start and end of line, not string. For start and end of
string, you want \A and \z (or \Z to ignore final newline).
David
–
David A. Black
[email protected]
“Ruby for Rails”, from Manning Publications, coming April 2006!
NEWER EDITION AVAILABLE
The Well-Grounded Rubyist, Second Edition is now available. An eBook of the previous edition, The Well-Grounded Rubyist is included at no additional cost when you buy the revised edition!
Ruby for Rails helps Rails...