Rubyで文字の分解

形態素解析ではなく、ただ単純に文字を分解したかったので、そのためのプログラム。
連続する数字、アルファベット、漢字、ひらがな、カタカナを抜き出して、配列に入れる。

def split_word(str)
  word_list = Array.new
  while str != "" do
    case
    when str.sub!(/(^[-]+)/u, "")
      word_list.push $1
    when str.sub!(/(^[-]+)/u, "")
      word_list.push $1
    when str.sub!(/(^[-]+)/u, "")
      word_list.push $1
    when str.sub!(/(^[a-zA-Z]+)/, "")
      word_list.push $1
    when str.sub!(/(^[0-9]+)/, "")
      word_list.push $1
    else
      str.slice!(0..0)
    end
  end
  word_list
end
 
str = "今日12/24日は、とてもいい天気です。"
result = split_word(str)
result.each do |w|
  print w, " "
end
print "\n"
 

実行結果
今日 12 24 日 は とてもいい 天気 です
最終更新:2009年12月08日 23:46
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。