How to count a word in a line

Y

Yusuf Celik

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 Celik
 
Y

Yusuf Celik

Sorry made a mistake
line=gets.chomp
cnt = 0
line.split.each {
|v|
if v == 'Hi' then
cnt +=1
end
}
puts "#{cnt}"
 
D

David A. Black

Hi --

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

--
Upcoming Rails training by Ruby Power and Light:
Four-day Intro to Intermediate
May 8-11, 2007
Edison, NJ
http://www.rubypal.com/events/05082007
 
M

M. Edward (Ed) Borasky

Yusuf said:
Sorry made a mistake
line=gets.chomp
cnt = 0
line.split.each {
|v|
if v == 'Hi' then
cnt +=1
end
}
puts "#{cnt}"
Isn't there some totally unreadable regex that does this? :)
 
Y

Yusuf Celik

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]).
 

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
474,240
Messages
2,571,211
Members
47,845
Latest member
vojosay

Latest Threads

Top