[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Regular Expression {m,n}

Mmcolli00 Mom

1/19/2009 8:45:00 PM

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
--
Posted via http://www.ruby-....

2 Answers

Robert Klemme

1/19/2009 9:52:00 PM

0

On 19.01.2009 21:45, Mmcolli00 Mom wrote:
> 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

--
remember.guy do |as, often| as.you_can - without end

Mmcolli00 Mom

1/19/2009 10:03:00 PM

0

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
--
Posted via http://www.ruby-....