POCH-7003 BEATout!

2011-11-29

テキストを指定桁数抜き出す?切り取る?やーーーつ

| 15:15

ブログrssなんかでよくあるテキストの先頭から50文字だけ切り取るみたいなやつ、結構使えるのでStringクラスにぶっコム。scanで細切れにするってのも考えたけど、文字数が多くなると遅くなりそうなのでヤメ。長文用にstrscanも考えたが結局正規表現でポジションを進めるのでムダが多いから長文でエラー承知で単純にした。

※あまりにもposの位置がデカイと多分エラーになる。30000とか・・・。つか、そんなテキスト処理しないからこれで良いのさ。

UTF-8で改行も含める仕様。

class String
  def cut(length, pos=0)
    self[/^.{0,#{pos}}(.{0,#{length}})/mu, 1]
  end
end

実行してみる

puts "あいうえおかきくけこさしすせそ".cut(10)
#=> "あいうえおかきくけこ"

puts "あいうえおかきくけこさしすせそ".cut(5, 10)
#=> "さしすせそ"
トラックバック - http://d.hatena.ne.jp/poch-7003/20111129/1322547358
リンク元