読者です 読者をやめる 読者になる 読者になる

【Ruby】他ファイルの内容を読み込んで正規表現で検索して置換【twiterm】

開発中のtwitermに、デフォルトのアカウントの機能をつけようと思ったところ、このタイトルみたいなことしないといけないなぁってことになってruby正規表現あたりを勉強することになったのでメモ。

参考にさせていただいたサイト

正規表現の基礎中の基礎はここ

http://www.mnet.ne.jp/~nakama/

rubyのString#subとString#gsubについてはここがめちゃくちゃ参考になりました。

http://akisute3.hatenablog.com/entry/20111126/1322314400

ソースコードと解説

といことで以下ソースコード

    # Fetch the name of default account 
    if s=File.read("twit_setting_files/setting_file_default.rb", :encoding => Encoding::UTF_8)
      puts s.gsub(/^.*\n.*\nSCREEN_NAME = \"([^\\]*)\"\n/, '\1')
    end

設定ファイルの読み込みに成功したとき(=ユーザがデフォルトアカウントの設定をしているとき)に、String#gsubでアカウントの名前だけを取り出す。

読み込む文字列は以下のようなものを想定

ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"
ACCESS_TOKEN_SECRET = "YOUR_ACCESS_TOKEN_SECRET"
SCREEN_NAME = "YOUR_USER_NAME"

\1で最初にグルーピングで一致してる文字列を取り出せるのだけど、それがシングルクォーテーションで引数をあげないとダメらしく、そこでつまづいてた笑

ということで、稚拙な正規表現だと思いますのでもっと精進して簡潔にビューティフルに書けるようになります。いいのありましたらご教授いただけるととても嬉しいです。。。