Movatterモバイル変換


[0]ホーム

URL:


Yukun's Blog

難しいことを簡単に分かりやすく紹介

フォローする

Rubyで引数の設定値によって4パターンの部分文字列を取得するラッパー関数

Ruby

引数に設定値を与え、それによって挙動を変えることで、似た機能をまとめてみます。

追記(2008.2.8):正規表現のマッチを保持する変数があったことを失念していました。「$`」マッチした部分より前の文字列、「$&」マッチした文字列、「$’」マッチした部分より後ろの文字列を使えばより簡潔に書けると思いました。

ソースコード

EXCL = trueINCL = falseBEFORE = trueAFTER = false## string 分割する文字列# delineator 分割する場所# desired    BEFORE: delineator 文字列より前の文字列#            AFTER:  delineator 文字列より後の文字列# type       INCL:   分割文字列に delineator を加える#            EXCL:   分割文字列に delineator を加えないdef split_str(string, delineator, desired, type)  low_str = string.downcase # 小文字に揃える(変換)  marker = delineator.downcase  return if (low_str.index(marker) == nil) # delineator に一致しない  if (desired == BEFORE)    if (type == EXCL)      split_pos = low_str.index(marker)    else      split_pos = low_str.index(marker) + marker.length    end    parsed_str = low_str[0, split_pos]  else    if (type == EXCL)      split_pos = low_str.index(marker)+marker.length    else      split_pos = low_str.index(marker)    end    parsed_str = low_str[split_pos, string.length]  end  return parsed_strendstring = "I'm designing a Web crawler and a Search engine."p split_str(string, "crawler", BEFORE, INCL);p split_str(string, "crawler", BEFORE, EXCL);p split_str(string, "crawler", AFTER, INCL);p split_str(string, "crawler", AFTER, EXCL);p split_str(string, "crauler", AFTER, EXCL);

実行結果

"i'm designing a web crawler""i'm designing a web ""crawler and a search engine."" and a search engine."nil

単に部分文字列を取得するには

str = "A Web crawler"p str[6, str.size] #=> "crawler"

関連記事

Ruby 1.9.3インストール: yumリポジトリ追加時の依存性の欠如エラー – libyaml

ほったらかしにしていたとある自鯖のRedmineのアップグレードに際し、Ruby 1.9系のビルドに必要なlibyamlをyumでインストー...

NO IMAGE

とあるボットのチャットログ

人工無脳とのチャットログyukun> こんにちはbot > こんちはyukun> 元気してた?bot > 元気に、そう見えても、おかし...

NO IMAGE

JavaとRubyで文字列の終端の扱いの違い

RubyのコードをJavaに書き直す際に注意する相違点が幾つかあったので、そのうちの一つを挙げてみます。特に文字列関係は色々やりにくいです。...

NO IMAGE

POSTメソッドを用いてExcite翻訳を行うRubyコード

しかし、未完です。Webの巡回などにはWWW::Mechanizeという便利なライブラリがありますが、あえてnet/httpのPOSTメソ...

NO IMAGE

Webページから指定したタグの要素を抜き出すRuby関数

単一のWebページから抜き出した複数の要素を配列に格納して返します。以下の例はaタグの要素(エレメント)を抽出した場合です。Rubyコー...

NO IMAGE

Rubyで文字列から日本語文字をインデックス指定する

RubyのStringインスタンスに格納されている文字列のインデックスを得るにはchrメソッドを用います。ソースコード# chrは文字...

NO IMAGE

Ruby: メソッドの引数にブロックを渡す

ブロックの使い方を練習してみます。def repeat(n) n.times { yield } if block_given?e...

NO IMAGE

Ruby: lambdaメソッドを使いブロックをオブジェクト化

に関して、練習します。他の言語と比較してRubyのコードブロックの扱いは特徴的で扱い難そうに見えますが、使いこなせればコード量を減らせるし...

NO IMAGE

チャットログから本文を抽出

先日、メッセンジャーのチャットで会話するボットを作りました。 そのボットに「学習」させるネタに、会話文であるWindows Live Mes...

NO IMAGE

タグの中の要素を抜き出すRuby関数

ライブラリを使えば簡単ですが、正規表現の学習の為に。ソースコードdef return_between(unporsed, start,...


コメントをどうぞコメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

検索


Sponsored Link

最近の投稿

カテゴリー

アーカイブ

最近のコメント


[8]ページ先頭

©2009-2025 Movatter.jp