Я знаю, что это старый вопрос, но он может быть полезен для кого-то, кто ищет что-то более сложное, чем string.split
. Я написал гем words_counted
, чтобы решить эту конкретную проблему, поскольку определение слов довольно сложно.
Драгоценный камень позволяет вам определять свои собственные критерии или использовать готовое регулярное выражение, что довольно удобно для большинства случаев использования. Вы можете предварительно фильтровать слова с различными вариантами, включая строку, лямбду, массив или другое регулярное выражение.
counter = WordsCounted::Counter.new("Hello, Renée! 123")
counter.word_count #=> 2
counter.words #=> ["Hello", "Renée"]
# filter the word "hello"
counter = WordsCounted::Counter.new("Hello, Renée!", reject: "Hello")
counter.word_count #=> 1
counter.words #=> ["Renée"]
# Count numbers only
counter = WordsCounted::Counter.new("Hello, Renée! 123", rexexp: /[0-9]/)
counter.word_count #=> 1
counter.words #=> ["123"]
Драгоценный камень предоставляет кучу более полезных методов .