私は文字列から単語を解析し、配列に入れようとしています。私は次のことを試しました:
@string1 = "oriented design, decomposition, encapsulation, and testing. Uses "
puts @string1.scan(/\s([^\,\.\s]*)/)
それはトリックを行うようですが、それは少し不安定です(たとえば、より多くの特殊文字を含める必要があります)。ルビーでそうするより良い方法はありますか?
オプション:csコースの説明があります。すべての単語を抽出して文字列配列に配置し、生成された配列から英語の最も一般的な単語を削除し、残りの単語をユーザーがcsの検索に使用できるタグとして使用する予定ですコース。
Splitコマンド。
words = @string1.split(/\W+/)
正規表現に基づいて文字列を配列に分割します。\Wは「非単語」文字を意味し、「+」は複数の区切り文字を結合することを意味します。
さて、それがあなたの関心の区切り文字である場合、スペースで文字列を分割することができます
@string1.split(' ')
または、単語の境界で分割する
\W # Any non-Word character
\b # Any Word boundary character
または非単語で
\s # Any whitespace character
ヒント:これらのそれぞれを http://rubular.com でテストしてみてください
また、Ruby 1.9には1.8とは異なる点があることに注意してください
私にとって、文を分割するのに最適なのは:
line.split(/[^[[:Word:]]]+/)
多言語の単語や句読点でも完全に機能します。
line = 'English words, Polski Żurek!!! crème fraîche...'
line.split(/[^[[:Word:]]]+/)
=> ["English", "words", "Polski", "Żurek", "crème", "fraîche"]
Railsの場合、次のようなものを使用できます。
@string1.split(/\s/).delete_if(&:blank?)