toki
May 2, 2008, 7:30pm
1
Hi to all!
I need to search how many words are starting with a specific character
in a text file, no problem to read the file, but after that I split it
in words, how can
I search all occurencies that’s matching my criteria in the resulting
array? Maybe split isn’t the best solution?
I would like an output similar to this:
Number of words starting with ’ ’ = 12345
Here’s the code:
txt = File.read(“C:\text.txt”)
list = txt.split
Thanks.
Best regards.
toki
May 2, 2008, 8:18pm
2
I need to search how many words are starting with a specific character
A word border can be matched with \b.
Using split + grep:
irb(main)> a = ‘foo bar foo bar foo bar’
irb(main)> a.split(/\b/).grep(/^f\w*/)
=> [“foo”, “foo”, “foo”]
irb(main)> a.split(/\b/).grep(/^f\w*/).size
=> 3
Another solution would be to use scan:
irb(main)> a.scan(/\bf\w*/)
=> [“foo”, “foo”, “foo”]
irb(main)> a.scan(/\bf\w*/).size
=> 3
toki
May 2, 2008, 11:54pm
3
ThoML wrote:
I need to search how many words are starting with a specific character
A word border can be matched with \b.
Using split + grep:
irb(main)> a = ‘foo bar foo bar foo bar’
irb(main)> a.split(/\b/).grep(/^f\w*/)
=> [“foo”, “foo”, “foo”]
irb(main)> a.split(/\b/).grep(/^f\w*/).size
=> 3
Another solution would be to use scan:
irb(main)> a.scan(/\bf\w*/)
=> [“foo”, “foo”, “foo”]
irb(main)> a.scan(/\bf\w*/).size
=> 3
Thanks a lot for the helpful and fast answer.
Best regards.