Ruby Recipe47 文字列を単語に分ける
文字列を単語毎に分割してリストを作るやり方。
単純に「単語に分ける」といっても何を持って単語とするかによってやり方は異なります。
str = "def foo(n) n * 3 end"
を例に3つのやり方で分割してみます。
空白類文字を区切りにして分ける
p str.split(nil) #=> ["def", "foo(n)", "n", "*", "3", "end"]
[a-zA-Z0-9_]のつながりだけを単語と見なして分ける
p str.scan(/\w+/n) #=> ["def", "foo", "n", "n", "3", "end"]
/\w+/か/\w+|[^\s\w]+/の2つを単語と見なして分ける
p str.scan(/\w+|[^\s\w]+/) #=> ["def", "foo", "(", "n", ")", "n", "*", "3", "end"]
基本的には一番上のsplitメソッドを使うやり方で事足りるのかな?
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/08/28
- メディア: 単行本
- 購入: 4人 クリック: 80回
- この商品を含むブログ (27件) を見る