Regular Expression {m,n}

M

Mmcolli00 Mom

File.open("patientrecords.txt", 'r') do |p|
if p.gets =~ /%{2,3}PersonID/ then
puts "PersonID exist twice"
end
end

Hi.
This is supposed to tell me if there a line in my text file that
contains 'PersonID' at least 2 times and at most 3 times. I have been
playing with regular expressions and thinking {m,n} would help with
this. This snippet is used to show me if it will actually work. (Some
lines contain PersonID only once, I do not want to use those lines)

Thanks, MC
 
R

Robert Klemme

File.open("patientrecords.txt", 'r') do |p|
if p.gets =~ /%{2,3}PersonID/ then
puts "PersonID exist twice"

That output would be wrong, even if your matching would work the way you
want it to.
end
end

This is supposed to tell me if there a line in my text file that
contains 'PersonID' at least 2 times and at most 3 times.

It won't work. {m,n} needs to be placed *after* the bit you want to
repeat. Also, it will match only immediate repetition unless you take
measures to avoid that.

Having said that using scan(/PersonID/).size is probably simpler...
I have been
playing with regular expressions and thinking {m,n} would help with
this. This snippet is used to show me if it will actually work. (Some
lines contain PersonID only once, I do not want to use those lines)

I can't seem to find a question in your posting...

Cheers

robert
 
M

Mmcolli00 Mom

Thanks for pointing me in the right direction. Its been a long day
already --> maybe that's why I didn't know that I didn't put the
question out there - Yikes. I apologize. Thanks for replying. MC
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,825
Latest member
VernonQuy6

Latest Threads

Top