How to count a word in a line

Hi,
I wonder if there is a way of counting a word in a line using ruby
regexp.
Such as how many “Hi”'s in a line.
Let’s say when I enter a line
“Hello and Hi there hey hear my Hi”
It should give me 2, because there are 2 “Hi”'s.
I have something like this but looks awkward.
while line=gets.chomp
cnt = 0
line.split.each {
|v|
if v == ‘Hi’ then
cnt +=1
end
}
break if cnt > 2
end

Thanks in advance
Yusuf C.

Sorry made a mistake
line=gets.chomp
cnt = 0
line.split.each {
|v|
if v == ‘Hi’ then
cnt +=1
end
}
puts “#{cnt}”

Hi –

On 4/19/07, Yusuf C. [email protected] wrote:

Sorry made a mistake
line=gets.chomp
cnt = 0
line.split.each {
|v|
if v == ‘Hi’ then
cnt +=1
end
}
puts “#{cnt}”

You could do:

line.scan(/\bHi\b/).size

(or \s instead of \b if you want it to be spaces instead of word
boundaries [which can also be hyphens and other punctuation]).

David

Yusuf C. wrote:

Isn’t there some totally unreadable regex that does this? :slight_smile:


M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.net/

If God had meant for carrots to be eaten cooked, He would have given
rabbits fire.

Thanks David,

What can I say I am speechless.
Just 1 line wow.

Thanks anyway
Yusuf

You could do:

line.scan(/\bHi\b/).size

(or \s instead of \b if you want it to be spaces instead of word
boundaries [which can also be hyphens and other punctuation]).