How to search words starting with a particular char?

T

Toki Toki

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.
 
T

ThoML

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
 
T

Toki Toki

ThoML said:
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.
 

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

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top