平々凡々エンジニア

平凡で難しい悩みを解決

アプリ開発進捗状況

目的

プログラマー用のツイッター開発

現在の開発している機能

ツイートの返信機能 ツイッターと同じく@user_id で指定すると返信記事を投稿する事ができる

現在の進捗状況

【Ruby on Rails チュートリアル】サンプルアプリケーションに返信機能を追加する

を参考に返信機能を作成中 マイクロポストのテーブルに返信IDを追加まで完了

詰まっている事

現在参考資料に基づいた正規表現ではuser_idとuser_nameを引き出す事ができそうもないので正規表現を自分なりに変える必要がある事が判明した
正規表現の勉強をする必要がでた

以下ソースと実行結果

REPLY_CONTENT_REGEX = /\A(@(?<user_id>\d{1,})-(?<user_name>[^\s]+)\s)?/i
  def reply_name
    m = @micropost_content.match(REPLY_CONTENT_REGEX)
    ReplyName.new(m[:user_id], m[:user_name])
  end

現在の実行結果

irb(main):052:0> REPLY_CONTENT_REGEX = /\A(@(?<user_id>\d{1,})-(?<user_name>[^\s]+)\s)?/i
irb(main):053:0> micropost.content
=> "@test \r\nbbbb\r\n"
irb(main):054:0> micropost.content.match(REPLY_CONTENT_REGEX)
=> #<MatchData "" user_id:nil user_name:nil>

実際に欲しい値は

=> #<MatchData "test" user_id:test user_name:nil>