Hi, I have a very simple regex question.
I don't understand why the regex in the example below isn't identifying
that the string is longer than 12 characters long...
line = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
=> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
if line =~ /[a-zA-Z]{2,12}/
puts "good"
else
?> puts "bad"
end
good
=> nil
Any ideas?
Many thanks in advance!
···
--
Posted via http://www.ruby-forum.com/\.
Your regexp will match anywhere within the string where there is a run
of 2 to 12 characters. If you want to ensure that there is nothing
before or after whatever is matched, you need to use the begin and end
of string anchors as follows when you define your regexp:
/\A[a-zA-Z]{2,12}\z/
-Jeremy
···
On 11/13/2010 01:06 PM, Geometric Patterns wrote:
Hi, I have a very simple regex question.
I don't understand why the regex in the example below isn't identifying
that the string is longer than 12 characters long...
line = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
=> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
if line =~ /[a-zA-Z]{2,12}/
puts "good"
else
?> puts "bad"
end
good
=> nil
Any ideas?
That succeeds if the string *contains* between 2 and 12 characters,
not if it consists solely of 2-12 characters.
line = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
if line =~ /[a-zA-Z]{2,12}/
puts "good" # you'll get this
else
puts "bad"
end
if line =~ /\A[a-zA-Z]{2,12}\Z/
puts "good"
else
puts "bad" # you'll get this
end
FWIW,
···
On Sat, Nov 13, 2010 at 11:06 AM, Geometric Patterns <geometric.patterns@gmail.com> wrote:
I don't understand why the regex in the example below isn't identifying
that the string is longer than 12 characters long...
if line =~ /[a-zA-Z]{2,12}/
--
Hassan Schroeder ------------------------ hassan.schroeder@gmail.com
twitter: @hassan